/*
 * Copyright [2013-2021], Alibaba Group Holding Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: polarx_crud.proto

package com.mysql.cj.polarx.protobuf;

public final class PolarxCrud {
  private PolarxCrud() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * <pre>
   * DataModel to use for filters, names, ...
   * </pre>
   *
   * Protobuf enum {@code Polarx.Crud.DataModel}
   */
  public enum DataModel
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>DOCUMENT = 1;</code>
     */
    DOCUMENT(1),
    /**
     * <code>TABLE = 2;</code>
     */
    TABLE(2),
    ;

    /**
     * <code>DOCUMENT = 1;</code>
     */
    public static final int DOCUMENT_VALUE = 1;
    /**
     * <code>TABLE = 2;</code>
     */
    public static final int TABLE_VALUE = 2;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static DataModel valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static DataModel forNumber(int value) {
      switch (value) {
        case 1: return DOCUMENT;
        case 2: return TABLE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DataModel>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        DataModel> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<DataModel>() {
            public DataModel findValueByNumber(int number) {
              return DataModel.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.getDescriptor().getEnumTypes().get(0);
    }

    private static final DataModel[] VALUES = values();

    public static DataModel valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    DataModel(int value) {
        this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:Polarx.Crud.DataModel)
  }

  public interface ColumnOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Column)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string name = 1;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <code>optional string name = 1;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>optional string name = 1;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>optional string alias = 2;</code>
     * @return Whether the alias field is set.
     */
    boolean hasAlias();
    /**
     * <code>optional string alias = 2;</code>
     * @return The alias.
     */
    java.lang.String getAlias();
    /**
     * <code>optional string alias = 2;</code>
     * @return The bytes for alias.
     */
    com.google.protobuf.ByteString
        getAliasBytes();

    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem> 
        getDocumentPathList();
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem getDocumentPath(int index);
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    int getDocumentPathCount();
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder> 
        getDocumentPathOrBuilderList();
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder getDocumentPathOrBuilder(
        int index);
  }
  /**
   * <pre>
   * column definition
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Column}
   */
  public  static final class Column extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Column)
      ColumnOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Column.newBuilder() to construct.
    private Column(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Column() {
      name_ = "";
      alias_ = "";
      documentPath_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Column();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Column(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              alias_ = bs;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                documentPath_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem>();
                mutable_bitField0_ |= 0x00000004;
              }
              documentPath_.add(
                  input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          documentPath_ = java.util.Collections.unmodifiableList(documentPath_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Column_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Column_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Column.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <code>optional string name = 1;</code>
     * @return Whether the name field is set.
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string name = 1;</code>
     * @return The name.
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string name = 1;</code>
     * @return The bytes for name.
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALIAS_FIELD_NUMBER = 2;
    private volatile java.lang.Object alias_;
    /**
     * <code>optional string alias = 2;</code>
     * @return Whether the alias field is set.
     */
    public boolean hasAlias() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string alias = 2;</code>
     * @return The alias.
     */
    public java.lang.String getAlias() {
      java.lang.Object ref = alias_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          alias_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string alias = 2;</code>
     * @return The bytes for alias.
     */
    public com.google.protobuf.ByteString
        getAliasBytes() {
      java.lang.Object ref = alias_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alias_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DOCUMENT_PATH_FIELD_NUMBER = 3;
    private java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem> documentPath_;
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem> getDocumentPathList() {
      return documentPath_;
    }
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder> 
        getDocumentPathOrBuilderList() {
      return documentPath_;
    }
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    public int getDocumentPathCount() {
      return documentPath_.size();
    }
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem getDocumentPath(int index) {
      return documentPath_.get(index);
    }
    /**
     * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder getDocumentPathOrBuilder(
        int index) {
      return documentPath_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getDocumentPathCount(); i++) {
        if (!getDocumentPath(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, alias_);
      }
      for (int i = 0; i < documentPath_.size(); i++) {
        output.writeMessage(3, documentPath_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, alias_);
      }
      for (int i = 0; i < documentPath_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, documentPath_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Column)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Column other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Column) obj;

      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (hasAlias() != other.hasAlias()) return false;
      if (hasAlias()) {
        if (!getAlias()
            .equals(other.getAlias())) return false;
      }
      if (!getDocumentPathList()
          .equals(other.getDocumentPathList())) return false;
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasAlias()) {
        hash = (37 * hash) + ALIAS_FIELD_NUMBER;
        hash = (53 * hash) + getAlias().hashCode();
      }
      if (getDocumentPathCount() > 0) {
        hash = (37 * hash) + DOCUMENT_PATH_FIELD_NUMBER;
        hash = (53 * hash) + getDocumentPathList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Column prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * column definition
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Column}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Column)
        com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Column_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Column_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Column.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Column.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDocumentPathFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        alias_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (documentPathBuilder_ == null) {
          documentPath_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          documentPathBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Column_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Column getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Column.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Column build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Column result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Column buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Column result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Column(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.alias_ = alias_;
        if (documentPathBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            documentPath_ = java.util.Collections.unmodifiableList(documentPath_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.documentPath_ = documentPath_;
        } else {
          result.documentPath_ = documentPathBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Column) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Column)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Column other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Column.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasAlias()) {
          bitField0_ |= 0x00000002;
          alias_ = other.alias_;
          onChanged();
        }
        if (documentPathBuilder_ == null) {
          if (!other.documentPath_.isEmpty()) {
            if (documentPath_.isEmpty()) {
              documentPath_ = other.documentPath_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureDocumentPathIsMutable();
              documentPath_.addAll(other.documentPath_);
            }
            onChanged();
          }
        } else {
          if (!other.documentPath_.isEmpty()) {
            if (documentPathBuilder_.isEmpty()) {
              documentPathBuilder_.dispose();
              documentPathBuilder_ = null;
              documentPath_ = other.documentPath_;
              bitField0_ = (bitField0_ & ~0x00000004);
              documentPathBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDocumentPathFieldBuilder() : null;
            } else {
              documentPathBuilder_.addAllMessages(other.documentPath_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getDocumentPathCount(); i++) {
          if (!getDocumentPath(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Column parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Column) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * <code>optional string name = 1;</code>
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string name = 1;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string name = 1;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string name = 1;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object alias_ = "";
      /**
       * <code>optional string alias = 2;</code>
       * @return Whether the alias field is set.
       */
      public boolean hasAlias() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string alias = 2;</code>
       * @return The alias.
       */
      public java.lang.String getAlias() {
        java.lang.Object ref = alias_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            alias_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string alias = 2;</code>
       * @return The bytes for alias.
       */
      public com.google.protobuf.ByteString
          getAliasBytes() {
        java.lang.Object ref = alias_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alias_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string alias = 2;</code>
       * @param value The alias to set.
       * @return This builder for chaining.
       */
      public Builder setAlias(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        alias_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string alias = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlias() {
        bitField0_ = (bitField0_ & ~0x00000002);
        alias_ = getDefaultInstance().getAlias();
        onChanged();
        return this;
      }
      /**
       * <code>optional string alias = 2;</code>
       * @param value The bytes for alias to set.
       * @return This builder for chaining.
       */
      public Builder setAliasBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        alias_ = value;
        onChanged();
        return this;
      }

      private java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem> documentPath_ =
        java.util.Collections.emptyList();
      private void ensureDocumentPathIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          documentPath_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem>(documentPath_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder> documentPathBuilder_;

      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem> getDocumentPathList() {
        if (documentPathBuilder_ == null) {
          return java.util.Collections.unmodifiableList(documentPath_);
        } else {
          return documentPathBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public int getDocumentPathCount() {
        if (documentPathBuilder_ == null) {
          return documentPath_.size();
        } else {
          return documentPathBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem getDocumentPath(int index) {
        if (documentPathBuilder_ == null) {
          return documentPath_.get(index);
        } else {
          return documentPathBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder setDocumentPath(
          int index, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem value) {
        if (documentPathBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDocumentPathIsMutable();
          documentPath_.set(index, value);
          onChanged();
        } else {
          documentPathBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder setDocumentPath(
          int index, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder builderForValue) {
        if (documentPathBuilder_ == null) {
          ensureDocumentPathIsMutable();
          documentPath_.set(index, builderForValue.build());
          onChanged();
        } else {
          documentPathBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder addDocumentPath(com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem value) {
        if (documentPathBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDocumentPathIsMutable();
          documentPath_.add(value);
          onChanged();
        } else {
          documentPathBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder addDocumentPath(
          int index, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem value) {
        if (documentPathBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDocumentPathIsMutable();
          documentPath_.add(index, value);
          onChanged();
        } else {
          documentPathBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder addDocumentPath(
          com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder builderForValue) {
        if (documentPathBuilder_ == null) {
          ensureDocumentPathIsMutable();
          documentPath_.add(builderForValue.build());
          onChanged();
        } else {
          documentPathBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder addDocumentPath(
          int index, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder builderForValue) {
        if (documentPathBuilder_ == null) {
          ensureDocumentPathIsMutable();
          documentPath_.add(index, builderForValue.build());
          onChanged();
        } else {
          documentPathBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder addAllDocumentPath(
          java.lang.Iterable<? extends com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem> values) {
        if (documentPathBuilder_ == null) {
          ensureDocumentPathIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, documentPath_);
          onChanged();
        } else {
          documentPathBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder clearDocumentPath() {
        if (documentPathBuilder_ == null) {
          documentPath_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          documentPathBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public Builder removeDocumentPath(int index) {
        if (documentPathBuilder_ == null) {
          ensureDocumentPathIsMutable();
          documentPath_.remove(index);
          onChanged();
        } else {
          documentPathBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder getDocumentPathBuilder(
          int index) {
        return getDocumentPathFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder getDocumentPathOrBuilder(
          int index) {
        if (documentPathBuilder_ == null) {
          return documentPath_.get(index);  } else {
          return documentPathBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder> 
           getDocumentPathOrBuilderList() {
        if (documentPathBuilder_ != null) {
          return documentPathBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(documentPath_);
        }
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder addDocumentPathBuilder() {
        return getDocumentPathFieldBuilder().addBuilder(
            com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder addDocumentPathBuilder(
          int index) {
        return getDocumentPathFieldBuilder().addBuilder(
            index, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Expr.DocumentPathItem document_path = 3;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder> 
           getDocumentPathBuilderList() {
        return getDocumentPathFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder> 
          getDocumentPathFieldBuilder() {
        if (documentPathBuilder_ == null) {
          documentPathBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItem.Builder, com.mysql.cj.x.protobuf.PolarxExpr.DocumentPathItemOrBuilder>(
                  documentPath_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          documentPath_ = null;
        }
        return documentPathBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Column)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Column)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Column DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Column();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Column getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Column>
        PARSER = new com.google.protobuf.AbstractParser<Column>() {
      @java.lang.Override
      public Column parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Column(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Column> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Column> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Column getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProjectionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Projection)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .Polarx.Expr.Expr source = 1;</code>
     * @return Whether the source field is set.
     */
    boolean hasSource();
    /**
     * <code>required .Polarx.Expr.Expr source = 1;</code>
     * @return The source.
     */
    com.mysql.cj.x.protobuf.PolarxExpr.Expr getSource();
    /**
     * <code>required .Polarx.Expr.Expr source = 1;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getSourceOrBuilder();

    /**
     * <code>optional string alias = 2;</code>
     * @return Whether the alias field is set.
     */
    boolean hasAlias();
    /**
     * <code>optional string alias = 2;</code>
     * @return The alias.
     */
    java.lang.String getAlias();
    /**
     * <code>optional string alias = 2;</code>
     * @return The bytes for alias.
     */
    com.google.protobuf.ByteString
        getAliasBytes();
  }
  /**
   * <pre>
   * a projection
   * :param source: the expression identifying an element from the source data
   *                which can include a column identifier or any expression
   * :param alias: optional alias. Required for DOCUMENTs (clients may use 
   *              the source string as default)
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Projection}
   */
  public  static final class Projection extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Projection)
      ProjectionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Projection.newBuilder() to construct.
    private Projection(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Projection() {
      alias_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Projection();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Projection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = source_.toBuilder();
              }
              source_ = input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(source_);
                source_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              alias_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Projection_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Projection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder.class);
    }

    private int bitField0_;
    public static final int SOURCE_FIELD_NUMBER = 1;
    private com.mysql.cj.x.protobuf.PolarxExpr.Expr source_;
    /**
     * <code>required .Polarx.Expr.Expr source = 1;</code>
     * @return Whether the source field is set.
     */
    public boolean hasSource() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .Polarx.Expr.Expr source = 1;</code>
     * @return The source.
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.Expr getSource() {
      return source_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : source_;
    }
    /**
     * <code>required .Polarx.Expr.Expr source = 1;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getSourceOrBuilder() {
      return source_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : source_;
    }

    public static final int ALIAS_FIELD_NUMBER = 2;
    private volatile java.lang.Object alias_;
    /**
     * <code>optional string alias = 2;</code>
     * @return Whether the alias field is set.
     */
    public boolean hasAlias() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string alias = 2;</code>
     * @return The alias.
     */
    public java.lang.String getAlias() {
      java.lang.Object ref = alias_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          alias_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string alias = 2;</code>
     * @return The bytes for alias.
     */
    public com.google.protobuf.ByteString
        getAliasBytes() {
      java.lang.Object ref = alias_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alias_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasSource()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getSource().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getSource());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, alias_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getSource());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, alias_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Projection)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Projection other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Projection) obj;

      if (hasSource() != other.hasSource()) return false;
      if (hasSource()) {
        if (!getSource()
            .equals(other.getSource())) return false;
      }
      if (hasAlias() != other.hasAlias()) return false;
      if (hasAlias()) {
        if (!getAlias()
            .equals(other.getAlias())) return false;
      }
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSource()) {
        hash = (37 * hash) + SOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getSource().hashCode();
      }
      if (hasAlias()) {
        hash = (37 * hash) + ALIAS_FIELD_NUMBER;
        hash = (53 * hash) + getAlias().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Projection prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * a projection
     * :param source: the expression identifying an element from the source data
     *                which can include a column identifier or any expression
     * :param alias: optional alias. Required for DOCUMENTs (clients may use 
     *              the source string as default)
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Projection}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Projection)
        com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Projection_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Projection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSourceFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (sourceBuilder_ == null) {
          source_ = null;
        } else {
          sourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        alias_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Projection_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Projection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Projection result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Projection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (sourceBuilder_ == null) {
            result.source_ = source_;
          } else {
            result.source_ = sourceBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.alias_ = alias_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Projection) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Projection)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Projection other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.getDefaultInstance()) return this;
        if (other.hasSource()) {
          mergeSource(other.getSource());
        }
        if (other.hasAlias()) {
          bitField0_ |= 0x00000002;
          alias_ = other.alias_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasSource()) {
          return false;
        }
          return getSource().isInitialized();
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Projection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Projection) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.mysql.cj.x.protobuf.PolarxExpr.Expr source_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> sourceBuilder_;
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       * @return Whether the source field is set.
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       * @return The source.
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getSource() {
        if (sourceBuilder_ == null) {
          return source_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : source_;
        } else {
          return sourceBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       */
      public Builder setSource(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (sourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          source_ = value;
          onChanged();
        } else {
          sourceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       */
      public Builder setSource(
          com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (sourceBuilder_ == null) {
          source_ = builderForValue.build();
          onChanged();
        } else {
          sourceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       */
      public Builder mergeSource(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (sourceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              source_ != null &&
              source_ != com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance()) {
            source_ =
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          onChanged();
        } else {
          sourceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       */
      public Builder clearSource() {
        if (sourceBuilder_ == null) {
          source_ = null;
          onChanged();
        } else {
          sourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getSourceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSourceFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getSourceOrBuilder() {
        if (sourceBuilder_ != null) {
          return sourceBuilder_.getMessageOrBuilder();
        } else {
          return source_ == null ?
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : source_;
        }
      }
      /**
       * <code>required .Polarx.Expr.Expr source = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getSourceFieldBuilder() {
        if (sourceBuilder_ == null) {
          sourceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                  getSource(),
                  getParentForChildren(),
                  isClean());
          source_ = null;
        }
        return sourceBuilder_;
      }

      private java.lang.Object alias_ = "";
      /**
       * <code>optional string alias = 2;</code>
       * @return Whether the alias field is set.
       */
      public boolean hasAlias() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string alias = 2;</code>
       * @return The alias.
       */
      public java.lang.String getAlias() {
        java.lang.Object ref = alias_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            alias_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string alias = 2;</code>
       * @return The bytes for alias.
       */
      public com.google.protobuf.ByteString
          getAliasBytes() {
        java.lang.Object ref = alias_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alias_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string alias = 2;</code>
       * @param value The alias to set.
       * @return This builder for chaining.
       */
      public Builder setAlias(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        alias_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string alias = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlias() {
        bitField0_ = (bitField0_ & ~0x00000002);
        alias_ = getDefaultInstance().getAlias();
        onChanged();
        return this;
      }
      /**
       * <code>optional string alias = 2;</code>
       * @param value The bytes for alias to set.
       * @return This builder for chaining.
       */
      public Builder setAliasBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        alias_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Projection)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Projection)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Projection DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Projection();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Projection getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Projection>
        PARSER = new com.google.protobuf.AbstractParser<Projection>() {
      @java.lang.Override
      public Projection parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Projection(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Projection> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Projection> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CollectionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Collection)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required string name = 1;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <code>required string name = 1;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>required string name = 1;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>optional string schema = 2;</code>
     * @return Whether the schema field is set.
     */
    boolean hasSchema();
    /**
     * <code>optional string schema = 2;</code>
     * @return The schema.
     */
    java.lang.String getSchema();
    /**
     * <code>optional string schema = 2;</code>
     * @return The bytes for schema.
     */
    com.google.protobuf.ByteString
        getSchemaBytes();
  }
  /**
   * <pre>
   * collection
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Collection}
   */
  public  static final class Collection extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Collection)
      CollectionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Collection.newBuilder() to construct.
    private Collection(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Collection() {
      name_ = "";
      schema_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Collection();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Collection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              schema_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Collection_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Collection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <code>required string name = 1;</code>
     * @return Whether the name field is set.
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string name = 1;</code>
     * @return The name.
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string name = 1;</code>
     * @return The bytes for name.
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCHEMA_FIELD_NUMBER = 2;
    private volatile java.lang.Object schema_;
    /**
     * <code>optional string schema = 2;</code>
     * @return Whether the schema field is set.
     */
    public boolean hasSchema() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string schema = 2;</code>
     * @return The schema.
     */
    public java.lang.String getSchema() {
      java.lang.Object ref = schema_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          schema_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string schema = 2;</code>
     * @return The bytes for schema.
     */
    public com.google.protobuf.ByteString
        getSchemaBytes() {
      java.lang.Object ref = schema_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        schema_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, schema_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, schema_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Collection)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Collection other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Collection) obj;

      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (hasSchema() != other.hasSchema()) return false;
      if (hasSchema()) {
        if (!getSchema()
            .equals(other.getSchema())) return false;
      }
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasSchema()) {
        hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
        hash = (53 * hash) + getSchema().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * collection
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Collection}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Collection)
        com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Collection_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Collection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        schema_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Collection_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Collection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Collection result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Collection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.schema_ = schema_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Collection) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Collection)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasSchema()) {
          bitField0_ |= 0x00000002;
          schema_ = other.schema_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
          return hasName();
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Collection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Collection) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * <code>required string name = 1;</code>
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string name = 1;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string name = 1;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string name = 1;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>required string name = 1;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object schema_ = "";
      /**
       * <code>optional string schema = 2;</code>
       * @return Whether the schema field is set.
       */
      public boolean hasSchema() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string schema = 2;</code>
       * @return The schema.
       */
      public java.lang.String getSchema() {
        java.lang.Object ref = schema_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            schema_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string schema = 2;</code>
       * @return The bytes for schema.
       */
      public com.google.protobuf.ByteString
          getSchemaBytes() {
        java.lang.Object ref = schema_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          schema_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string schema = 2;</code>
       * @param value The schema to set.
       * @return This builder for chaining.
       */
      public Builder setSchema(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        schema_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string schema = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchema() {
        bitField0_ = (bitField0_ & ~0x00000002);
        schema_ = getDefaultInstance().getSchema();
        onChanged();
        return this;
      }
      /**
       * <code>optional string schema = 2;</code>
       * @param value The bytes for schema to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        schema_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Collection)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Collection)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Collection DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Collection();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Collection>
        PARSER = new com.google.protobuf.AbstractParser<Collection>() {
      @java.lang.Override
      public Collection parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Collection(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Collection> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Collection> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LimitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Limit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required uint64 row_count = 1;</code>
     * @return Whether the rowCount field is set.
     */
    boolean hasRowCount();
    /**
     * <code>required uint64 row_count = 1;</code>
     * @return The rowCount.
     */
    long getRowCount();

    /**
     * <code>optional uint64 offset = 2;</code>
     * @return Whether the offset field is set.
     */
    boolean hasOffset();
    /**
     * <code>optional uint64 offset = 2;</code>
     * @return The offset.
     */
    long getOffset();
  }
  /**
   * <pre>
   * limit
   * :param row_count: maximum rows to filter
   * :param offset: maximum rows to skip before applying the row_count
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Limit}
   */
  public  static final class Limit extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Limit)
      LimitOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Limit.newBuilder() to construct.
    private Limit(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Limit() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Limit();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Limit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              rowCount_ = input.readUInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              offset_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Limit_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Limit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder.class);
    }

    private int bitField0_;
    public static final int ROW_COUNT_FIELD_NUMBER = 1;
    private long rowCount_;
    /**
     * <code>required uint64 row_count = 1;</code>
     * @return Whether the rowCount field is set.
     */
    public boolean hasRowCount() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint64 row_count = 1;</code>
     * @return The rowCount.
     */
    public long getRowCount() {
      return rowCount_;
    }

    public static final int OFFSET_FIELD_NUMBER = 2;
    private long offset_;
    /**
     * <code>optional uint64 offset = 2;</code>
     * @return Whether the offset field is set.
     */
    public boolean hasOffset() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint64 offset = 2;</code>
     * @return The offset.
     */
    public long getOffset() {
      return offset_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRowCount()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt64(1, rowCount_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, offset_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, rowCount_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, offset_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Limit)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Limit other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Limit) obj;

      if (hasRowCount() != other.hasRowCount()) return false;
      if (hasRowCount()) {
        if (getRowCount()
            != other.getRowCount()) return false;
      }
      if (hasOffset() != other.hasOffset()) return false;
      if (hasOffset()) {
        if (getOffset()
            != other.getOffset()) return false;
      }
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRowCount()) {
        hash = (37 * hash) + ROW_COUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRowCount());
      }
      if (hasOffset()) {
        hash = (37 * hash) + OFFSET_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOffset());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * limit
     * :param row_count: maximum rows to filter
     * :param offset: maximum rows to skip before applying the row_count
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Limit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Limit)
        com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Limit_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Limit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        rowCount_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        offset_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Limit_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Limit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Limit result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Limit(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.rowCount_ = rowCount_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.offset_ = offset_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Limit) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Limit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance()) return this;
        if (other.hasRowCount()) {
          setRowCount(other.getRowCount());
        }
        if (other.hasOffset()) {
          setOffset(other.getOffset());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
          return hasRowCount();
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Limit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Limit) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long rowCount_ ;
      /**
       * <code>required uint64 row_count = 1;</code>
       * @return Whether the rowCount field is set.
       */
      public boolean hasRowCount() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint64 row_count = 1;</code>
       * @return The rowCount.
       */
      public long getRowCount() {
        return rowCount_;
      }
      /**
       * <code>required uint64 row_count = 1;</code>
       * @param value The rowCount to set.
       * @return This builder for chaining.
       */
      public Builder setRowCount(long value) {
        bitField0_ |= 0x00000001;
        rowCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint64 row_count = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowCount() {
        bitField0_ = (bitField0_ & ~0x00000001);
        rowCount_ = 0L;
        onChanged();
        return this;
      }

      private long offset_ ;
      /**
       * <code>optional uint64 offset = 2;</code>
       * @return Whether the offset field is set.
       */
      public boolean hasOffset() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional uint64 offset = 2;</code>
       * @return The offset.
       */
      public long getOffset() {
        return offset_;
      }
      /**
       * <code>optional uint64 offset = 2;</code>
       * @param value The offset to set.
       * @return This builder for chaining.
       */
      public Builder setOffset(long value) {
        bitField0_ |= 0x00000002;
        offset_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint64 offset = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearOffset() {
        bitField0_ = (bitField0_ & ~0x00000002);
        offset_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Limit)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Limit)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Limit DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Limit();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Limit>
        PARSER = new com.google.protobuf.AbstractParser<Limit>() {
      @java.lang.Override
      public Limit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Limit(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Limit> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Limit> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OrderOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Order)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .Polarx.Expr.Expr expr = 1;</code>
     * @return Whether the expr field is set.
     */
    boolean hasExpr();
    /**
     * <code>required .Polarx.Expr.Expr expr = 1;</code>
     * @return The expr.
     */
    com.mysql.cj.x.protobuf.PolarxExpr.Expr getExpr();
    /**
     * <code>required .Polarx.Expr.Expr expr = 1;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getExprOrBuilder();

    /**
     * <code>optional .Polarx.Crud.Order.Direction direction = 2 [default = ASC];</code>
     * @return Whether the direction field is set.
     */
    boolean hasDirection();
    /**
     * <code>optional .Polarx.Crud.Order.Direction direction = 2 [default = ASC];</code>
     * @return The direction.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction getDirection();
  }
  /**
   * <pre>
   * sort order
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Order}
   */
  public  static final class Order extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Order)
      OrderOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Order.newBuilder() to construct.
    private Order(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Order() {
      direction_ = 1;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Order();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Order(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = expr_.toBuilder();
              }
              expr_ = input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(expr_);
                expr_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction value = com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                direction_ = rawValue;
              }
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Order_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Order_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Order.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder.class);
    }

    /**
     * Protobuf enum {@code Polarx.Crud.Order.Direction}
     */
    public enum Direction
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>ASC = 1;</code>
       */
      ASC(1),
      /**
       * <code>DESC = 2;</code>
       */
      DESC(2),
      ;

      /**
       * <code>ASC = 1;</code>
       */
      public static final int ASC_VALUE = 1;
      /**
       * <code>DESC = 2;</code>
       */
      public static final int DESC_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Direction valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Direction forNumber(int value) {
        switch (value) {
          case 1: return ASC;
          case 2: return DESC;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Direction>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Direction> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Direction>() {
              public Direction findValueByNumber(int number) {
                return Direction.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDescriptor().getEnumTypes().get(0);
      }

      private static final Direction[] VALUES = values();

      public static Direction valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

        Direction(int value) {
            this.value = value;
        }

      // @@protoc_insertion_point(enum_scope:Polarx.Crud.Order.Direction)
    }

    private int bitField0_;
    public static final int EXPR_FIELD_NUMBER = 1;
    private com.mysql.cj.x.protobuf.PolarxExpr.Expr expr_;
    /**
     * <code>required .Polarx.Expr.Expr expr = 1;</code>
     * @return Whether the expr field is set.
     */
    public boolean hasExpr() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .Polarx.Expr.Expr expr = 1;</code>
     * @return The expr.
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.Expr getExpr() {
      return expr_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : expr_;
    }
    /**
     * <code>required .Polarx.Expr.Expr expr = 1;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getExprOrBuilder() {
      return expr_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : expr_;
    }

    public static final int DIRECTION_FIELD_NUMBER = 2;
    private int direction_;
    /**
     * <code>optional .Polarx.Crud.Order.Direction direction = 2 [default = ASC];</code>
     * @return Whether the direction field is set.
     */
    public boolean hasDirection() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .Polarx.Crud.Order.Direction direction = 2 [default = ASC];</code>
     * @return The direction.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction getDirection() {
      @SuppressWarnings("deprecation")
      com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction result = com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction.valueOf(direction_);
      return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction.ASC : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasExpr()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getExpr().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getExpr());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, direction_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getExpr());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, direction_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Order)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Order other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Order) obj;

      if (hasExpr() != other.hasExpr()) return false;
      if (hasExpr()) {
        if (!getExpr()
            .equals(other.getExpr())) return false;
      }
      if (hasDirection() != other.hasDirection()) return false;
      if (hasDirection()) {
        if (direction_ != other.direction_) return false;
      }
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasExpr()) {
        hash = (37 * hash) + EXPR_FIELD_NUMBER;
        hash = (53 * hash) + getExpr().hashCode();
      }
      if (hasDirection()) {
        hash = (37 * hash) + DIRECTION_FIELD_NUMBER;
        hash = (53 * hash) + direction_;
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Order prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * sort order
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Order}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Order)
        com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Order_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Order_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Order.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Order.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getExprFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (exprBuilder_ == null) {
          expr_ = null;
        } else {
          exprBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        direction_ = 1;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Order_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Order result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Order result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Order(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (exprBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = exprBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.direction_ = direction_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Order) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Order)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Order other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDefaultInstance()) return this;
        if (other.hasExpr()) {
          mergeExpr(other.getExpr());
        }
        if (other.hasDirection()) {
          setDirection(other.getDirection());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasExpr()) {
          return false;
        }
          return getExpr().isInitialized();
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Order parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Order) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.mysql.cj.x.protobuf.PolarxExpr.Expr expr_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> exprBuilder_;
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       * @return Whether the expr field is set.
       */
      public boolean hasExpr() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       * @return The expr.
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getExpr() {
        if (exprBuilder_ == null) {
          return expr_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : expr_;
        } else {
          return exprBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       */
      public Builder setExpr(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (exprBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          exprBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       */
      public Builder setExpr(
          com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (exprBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          exprBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       */
      public Builder mergeExpr(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (exprBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              expr_ != null &&
              expr_ != com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance()) {
            expr_ =
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.newBuilder(expr_).mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          exprBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       */
      public Builder clearExpr() {
        if (exprBuilder_ == null) {
          expr_ = null;
          onChanged();
        } else {
          exprBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getExprBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getExprFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getExprOrBuilder() {
        if (exprBuilder_ != null) {
          return exprBuilder_.getMessageOrBuilder();
        } else {
          return expr_ == null ?
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : expr_;
        }
      }
      /**
       * <code>required .Polarx.Expr.Expr expr = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getExprFieldBuilder() {
        if (exprBuilder_ == null) {
          exprBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                  getExpr(),
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        return exprBuilder_;
      }

      private int direction_ = 1;
      /**
       * <code>optional .Polarx.Crud.Order.Direction direction = 2 [default = ASC];</code>
       * @return Whether the direction field is set.
       */
      public boolean hasDirection() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .Polarx.Crud.Order.Direction direction = 2 [default = ASC];</code>
       * @return The direction.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction getDirection() {
        @SuppressWarnings("deprecation")
        com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction result = com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction.valueOf(direction_);
        return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction.ASC : result;
      }
      /**
       * <code>optional .Polarx.Crud.Order.Direction direction = 2 [default = ASC];</code>
       * @param value The direction to set.
       * @return This builder for chaining.
       */
      public Builder setDirection(com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Direction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        direction_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Order.Direction direction = 2 [default = ASC];</code>
       * @return This builder for chaining.
       */
      public Builder clearDirection() {
        bitField0_ = (bitField0_ & ~0x00000002);
        direction_ = 1;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Order)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Order)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Order DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Order();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Order getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Order>
        PARSER = new com.google.protobuf.AbstractParser<Order>() {
      @java.lang.Override
      public Order parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Order(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Order> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Order> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Order getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UpdateOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.UpdateOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
     * @return Whether the source field is set.
     */
    boolean hasSource();
    /**
     * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
     * @return The source.
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier getSource();
    /**
     * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifierOrBuilder getSourceOrBuilder();

    /**
     * <code>required .Polarx.Crud.UpdateOperation.UpdateType operation = 2;</code>
     * @return Whether the operation field is set.
     */
    boolean hasOperation();
    /**
     * <code>required .Polarx.Crud.UpdateOperation.UpdateType operation = 2;</code>
     * @return The operation.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType getOperation();

    /**
     * <code>optional .Polarx.Expr.Expr value = 3;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>optional .Polarx.Expr.Expr value = 3;</code>
     * @return The value.
     */
    com.mysql.cj.x.protobuf.PolarxExpr.Expr getValue();
    /**
     * <code>optional .Polarx.Expr.Expr value = 3;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getValueOrBuilder();
  }
  /**
   * <pre>
   * update operations
   * :param source: specification of the value to be updated
   *      if data_model is TABLE, a column name may be specified and also a document path, if the column has type JSON
   *      if data_model is DOCUMENT, only document paths are allowed
   *      in both cases, schema and table must be not set
   * :param operation: the type of operation to be performed
   * :param value: an expression to be computed as the new value for the operation
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.UpdateOperation}
   */
  public  static final class UpdateOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.UpdateOperation)
      UpdateOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UpdateOperation.newBuilder() to construct.
    private UpdateOperation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UpdateOperation() {
      operation_ = 1;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UpdateOperation();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UpdateOperation(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = source_.toBuilder();
              }
              source_ = input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(source_);
                source_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType value = com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                operation_ = rawValue;
              }
              break;
            }
            case 26: {
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) != 0)) {
                subBuilder = value_.toBuilder();
              }
              value_ = input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(value_);
                value_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_UpdateOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_UpdateOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.class, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder.class);
    }

    /**
     * Protobuf enum {@code Polarx.Crud.UpdateOperation.UpdateType}
     */
    public enum UpdateType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       * only allowed for TABLE
       * </pre>
       *
       * <code>SET = 1;</code>
       */
      SET(1),
      /**
       * <pre>
       * no value (removes the identified path from a object or array)
       * </pre>
       *
       * <code>ITEM_REMOVE = 2;</code>
       */
      ITEM_REMOVE(2),
      /**
       * <pre>
       * sets the new value on the identified path
       * </pre>
       *
       * <code>ITEM_SET = 3;</code>
       */
      ITEM_SET(3),
      /**
       * <pre>
       * replaces a value if the path exists
       * </pre>
       *
       * <code>ITEM_REPLACE = 4;</code>
       */
      ITEM_REPLACE(4),
      /**
       * <pre>
       * source and value must be documents
       * </pre>
       *
       * <code>ITEM_MERGE = 5;</code>
       */
      ITEM_MERGE(5),
      /**
       * <pre>
       * insert the value in the array at the index identified in the source path
       * </pre>
       *
       * <code>ARRAY_INSERT = 6;</code>
       */
      ARRAY_INSERT(6),
      /**
       * <pre>
       * append the value on the array at the identified path
       * </pre>
       *
       * <code>ARRAY_APPEND = 7;</code>
       */
      ARRAY_APPEND(7),
      ;

      /**
       * <pre>
       * only allowed for TABLE
       * </pre>
       *
       * <code>SET = 1;</code>
       */
      public static final int SET_VALUE = 1;
      /**
       * <pre>
       * no value (removes the identified path from a object or array)
       * </pre>
       *
       * <code>ITEM_REMOVE = 2;</code>
       */
      public static final int ITEM_REMOVE_VALUE = 2;
      /**
       * <pre>
       * sets the new value on the identified path
       * </pre>
       *
       * <code>ITEM_SET = 3;</code>
       */
      public static final int ITEM_SET_VALUE = 3;
      /**
       * <pre>
       * replaces a value if the path exists
       * </pre>
       *
       * <code>ITEM_REPLACE = 4;</code>
       */
      public static final int ITEM_REPLACE_VALUE = 4;
      /**
       * <pre>
       * source and value must be documents
       * </pre>
       *
       * <code>ITEM_MERGE = 5;</code>
       */
      public static final int ITEM_MERGE_VALUE = 5;
      /**
       * <pre>
       * insert the value in the array at the index identified in the source path
       * </pre>
       *
       * <code>ARRAY_INSERT = 6;</code>
       */
      public static final int ARRAY_INSERT_VALUE = 6;
      /**
       * <pre>
       * append the value on the array at the identified path
       * </pre>
       *
       * <code>ARRAY_APPEND = 7;</code>
       */
      public static final int ARRAY_APPEND_VALUE = 7;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static UpdateType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static UpdateType forNumber(int value) {
        switch (value) {
          case 1: return SET;
          case 2: return ITEM_REMOVE;
          case 3: return ITEM_SET;
          case 4: return ITEM_REPLACE;
          case 5: return ITEM_MERGE;
          case 6: return ARRAY_INSERT;
          case 7: return ARRAY_APPEND;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<UpdateType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          UpdateType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<UpdateType>() {
              public UpdateType findValueByNumber(int number) {
                return UpdateType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.getDescriptor().getEnumTypes().get(0);
      }

      private static final UpdateType[] VALUES = values();

      public static UpdateType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

        UpdateType(int value) {
            this.value = value;
        }

      // @@protoc_insertion_point(enum_scope:Polarx.Crud.UpdateOperation.UpdateType)
    }

    private int bitField0_;
    public static final int SOURCE_FIELD_NUMBER = 1;
    private com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier source_;
    /**
     * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
     * @return Whether the source field is set.
     */
    public boolean hasSource() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
     * @return The source.
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier getSource() {
      return source_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.getDefaultInstance() : source_;
    }
    /**
     * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifierOrBuilder getSourceOrBuilder() {
      return source_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.getDefaultInstance() : source_;
    }

    public static final int OPERATION_FIELD_NUMBER = 2;
    private int operation_;
    /**
     * <code>required .Polarx.Crud.UpdateOperation.UpdateType operation = 2;</code>
     * @return Whether the operation field is set.
     */
    public boolean hasOperation() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .Polarx.Crud.UpdateOperation.UpdateType operation = 2;</code>
     * @return The operation.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType getOperation() {
      @SuppressWarnings("deprecation")
      com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType result = com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType.valueOf(operation_);
      return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType.SET : result;
    }

    public static final int VALUE_FIELD_NUMBER = 3;
    private com.mysql.cj.x.protobuf.PolarxExpr.Expr value_;
    /**
     * <code>optional .Polarx.Expr.Expr value = 3;</code>
     * @return Whether the value field is set.
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .Polarx.Expr.Expr value = 3;</code>
     * @return The value.
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.Expr getValue() {
      return value_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : value_;
    }
    /**
     * <code>optional .Polarx.Expr.Expr value = 3;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getValueOrBuilder() {
      return value_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : value_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasSource()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasOperation()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getSource().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasValue()) {
        if (!getValue().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getSource());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, operation_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getValue());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getSource());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, operation_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getValue());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation other = (com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation) obj;

      if (hasSource() != other.hasSource()) return false;
      if (hasSource()) {
        if (!getSource()
            .equals(other.getSource())) return false;
      }
      if (hasOperation() != other.hasOperation()) return false;
      if (hasOperation()) {
        if (operation_ != other.operation_) return false;
      }
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSource()) {
        hash = (37 * hash) + SOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getSource().hashCode();
      }
      if (hasOperation()) {
        hash = (37 * hash) + OPERATION_FIELD_NUMBER;
        hash = (53 * hash) + operation_;
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * update operations
     * :param source: specification of the value to be updated
     *      if data_model is TABLE, a column name may be specified and also a document path, if the column has type JSON
     *      if data_model is DOCUMENT, only document paths are allowed
     *      in both cases, schema and table must be not set
     * :param operation: the type of operation to be performed
     * :param value: an expression to be computed as the new value for the operation
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.UpdateOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.UpdateOperation)
        com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_UpdateOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_UpdateOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.class, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSourceFieldBuilder();
          getValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (sourceBuilder_ == null) {
          source_ = null;
        } else {
          sourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        operation_ = 1;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (valueBuilder_ == null) {
          value_ = null;
        } else {
          valueBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_UpdateOperation_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation result = new com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (sourceBuilder_ == null) {
            result.source_ = source_;
          } else {
            result.source_ = sourceBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.operation_ = operation_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (valueBuilder_ == null) {
            result.value_ = value_;
          } else {
            result.value_ = valueBuilder_.build();
          }
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.getDefaultInstance()) return this;
        if (other.hasSource()) {
          mergeSource(other.getSource());
        }
        if (other.hasOperation()) {
          setOperation(other.getOperation());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasSource()) {
          return false;
        }
        if (!hasOperation()) {
          return false;
        }
        if (!getSource().isInitialized()) {
          return false;
        }
        if (hasValue()) {
            return getValue().isInitialized();
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier source_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier, com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifierOrBuilder> sourceBuilder_;
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       * @return Whether the source field is set.
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       * @return The source.
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier getSource() {
        if (sourceBuilder_ == null) {
          return source_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.getDefaultInstance() : source_;
        } else {
          return sourceBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       */
      public Builder setSource(com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier value) {
        if (sourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          source_ = value;
          onChanged();
        } else {
          sourceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       */
      public Builder setSource(
          com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.Builder builderForValue) {
        if (sourceBuilder_ == null) {
          source_ = builderForValue.build();
          onChanged();
        } else {
          sourceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       */
      public Builder mergeSource(com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier value) {
        if (sourceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              source_ != null &&
              source_ != com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.getDefaultInstance()) {
            source_ =
              com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          onChanged();
        } else {
          sourceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       */
      public Builder clearSource() {
        if (sourceBuilder_ == null) {
          source_ = null;
          onChanged();
        } else {
          sourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.Builder getSourceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSourceFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifierOrBuilder getSourceOrBuilder() {
        if (sourceBuilder_ != null) {
          return sourceBuilder_.getMessageOrBuilder();
        } else {
          return source_ == null ?
              com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.getDefaultInstance() : source_;
        }
      }
      /**
       * <code>required .Polarx.Expr.ColumnIdentifier source = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier, com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifierOrBuilder> 
          getSourceFieldBuilder() {
        if (sourceBuilder_ == null) {
          sourceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier, com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifier.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ColumnIdentifierOrBuilder>(
                  getSource(),
                  getParentForChildren(),
                  isClean());
          source_ = null;
        }
        return sourceBuilder_;
      }

      private int operation_ = 1;
      /**
       * <code>required .Polarx.Crud.UpdateOperation.UpdateType operation = 2;</code>
       * @return Whether the operation field is set.
       */
      public boolean hasOperation() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .Polarx.Crud.UpdateOperation.UpdateType operation = 2;</code>
       * @return The operation.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType getOperation() {
        @SuppressWarnings("deprecation")
        com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType result = com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType.valueOf(operation_);
        return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType.SET : result;
      }
      /**
       * <code>required .Polarx.Crud.UpdateOperation.UpdateType operation = 2;</code>
       * @param value The operation to set.
       * @return This builder for chaining.
       */
      public Builder setOperation(com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.UpdateType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        operation_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .Polarx.Crud.UpdateOperation.UpdateType operation = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperation() {
        bitField0_ = (bitField0_ & ~0x00000002);
        operation_ = 1;
        onChanged();
        return this;
      }

      private com.mysql.cj.x.protobuf.PolarxExpr.Expr value_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> valueBuilder_;
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       * @return The value.
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       */
      public Builder setValue(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
          onChanged();
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       */
      public Builder setValue(
          com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
          onChanged();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       */
      public Builder mergeValue(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              value_ != null &&
              value_ != com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance()) {
            value_ =
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.newBuilder(value_).mergeFrom(value).buildPartial();
          } else {
            value_ = value;
          }
          onChanged();
        } else {
          valueBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       */
      public Builder clearValue() {
        if (valueBuilder_ == null) {
          value_ = null;
          onChanged();
        } else {
          valueBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getValueBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getValueFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr value = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.UpdateOperation)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.UpdateOperation)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<UpdateOperation>
        PARSER = new com.google.protobuf.AbstractParser<UpdateOperation>() {
      @java.lang.Override
      public UpdateOperation parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new UpdateOperation(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UpdateOperation> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UpdateOperation> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FindOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Find)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     * @return Whether the collection field is set.
     */
    boolean hasCollection();
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     * @return The collection.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection();
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder();

    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
     * @return Whether the dataModel field is set.
     */
    boolean hasDataModel();
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
     * @return The dataModel.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel();

    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Projection> 
        getProjectionList();
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Projection getProjection(int index);
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    int getProjectionCount();
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder> 
        getProjectionOrBuilderList();
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder getProjectionOrBuilder(
        int index);

    /**
     * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
     * @return Whether the criteria field is set.
     */
    boolean hasCriteria();
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
     * @return The criteria.
     */
    com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria();
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder();

    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> 
        getArgsList();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index);
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    int getArgsCount();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
        getArgsOrBuilderList();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
        int index);

    /**
     * <code>optional .Polarx.Crud.Limit limit = 6;</code>
     * @return Whether the limit field is set.
     */
    boolean hasLimit();
    /**
     * <code>optional .Polarx.Crud.Limit limit = 6;</code>
     * @return The limit.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit();
    /**
     * <code>optional .Polarx.Crud.Limit limit = 6;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder();

    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> 
        getOrderList();
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index);
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    int getOrderCount();
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
        getOrderOrBuilderList();
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
        int index);

    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> 
        getGroupingList();
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.Expr getGrouping(int index);
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    int getGroupingCount();
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
        getGroupingOrBuilderList();
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getGroupingOrBuilder(
        int index);

    /**
     * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
     * @return Whether the groupingCriteria field is set.
     */
    boolean hasGroupingCriteria();
    /**
     * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
     * @return The groupingCriteria.
     */
    com.mysql.cj.x.protobuf.PolarxExpr.Expr getGroupingCriteria();
    /**
     * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getGroupingCriteriaOrBuilder();
  }
  /**
   * <pre>
   * Find Documents/Rows in a Collection/Table
   * .. uml::
   *   client -&gt; server: Find
   *   ... one or more Resultset ...
   * :param collection: collection to insert into
   * :param data_model: datamodel that the operations refer to
   * :param projection: list of column projections that shall be returned
   * :param args: values for parameters used in filter expression
   * :param criteria: filter criteria
   * :param limit: numbers of rows that shall be skipped and returned
   * :param order: sort-order in which the rows/document shall be returned in
   * :param grouping: column expression list for aggregation (GROUP BY)
   * :param grouping_criteria: filter criteria for aggregated groups
   * :Returns: :protobuf:msg:`Polarx.Resultset::`
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Find}
   */
  public  static final class Find extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Find)
      FindOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Find.newBuilder() to construct.
    private Find(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Find() {
      dataModel_ = 1;
      projection_ = java.util.Collections.emptyList();
      args_ = java.util.Collections.emptyList();
      order_ = java.util.Collections.emptyList();
      grouping_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Find();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Find(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 18: {
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = collection_.toBuilder();
              }
              collection_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(collection_);
                collection_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel value = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                dataModel_ = rawValue;
              }
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                projection_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Projection>();
                mutable_bitField0_ |= 0x00000004;
              }
              projection_.add(
                  input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.PARSER, extensionRegistry));
              break;
            }
            case 42: {
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) != 0)) {
                subBuilder = criteria_.toBuilder();
              }
              criteria_ = input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(criteria_);
                criteria_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 50: {
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) != 0)) {
                subBuilder = limit_.toBuilder();
              }
              limit_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(limit_);
                limit_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) != 0)) {
                order_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Order>();
                mutable_bitField0_ |= 0x00000040;
              }
              order_.add(
                  input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Order.PARSER, extensionRegistry));
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) != 0)) {
                grouping_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxExpr.Expr>();
                mutable_bitField0_ |= 0x00000080;
              }
              grouping_.add(
                  input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry));
              break;
            }
            case 74: {
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) != 0)) {
                subBuilder = groupingCriteria_.toBuilder();
              }
              groupingCriteria_ = input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(groupingCriteria_);
                groupingCriteria_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 90: {
              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                args_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar>();
                mutable_bitField0_ |= 0x00000010;
              }
              args_.add(
                  input.readMessage(com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          projection_ = java.util.Collections.unmodifiableList(projection_);
        }
        if (((mutable_bitField0_ & 0x00000040) != 0)) {
          order_ = java.util.Collections.unmodifiableList(order_);
        }
        if (((mutable_bitField0_ & 0x00000080) != 0)) {
          grouping_ = java.util.Collections.unmodifiableList(grouping_);
        }
        if (((mutable_bitField0_ & 0x00000010) != 0)) {
          args_ = java.util.Collections.unmodifiableList(args_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Find_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Find_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Find.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Find.Builder.class);
    }

    private int bitField0_;
    public static final int COLLECTION_FIELD_NUMBER = 2;
    private com.mysql.cj.polarx.protobuf.PolarxCrud.Collection collection_;
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     * @return Whether the collection field is set.
     */
    public boolean hasCollection() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     * @return The collection.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection() {
      return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
    }
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder() {
      return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
    }

    public static final int DATA_MODEL_FIELD_NUMBER = 3;
    private int dataModel_;
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
     * @return Whether the dataModel field is set.
     */
    public boolean hasDataModel() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
     * @return The dataModel.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel() {
      @SuppressWarnings("deprecation")
      com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel result = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(dataModel_);
      return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.DOCUMENT : result;
    }

    public static final int PROJECTION_FIELD_NUMBER = 4;
    private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Projection> projection_;
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Projection> getProjectionList() {
      return projection_;
    }
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder> 
        getProjectionOrBuilderList() {
      return projection_;
    }
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    public int getProjectionCount() {
      return projection_.size();
    }
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection getProjection(int index) {
      return projection_.get(index);
    }
    /**
     * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder getProjectionOrBuilder(
        int index) {
      return projection_.get(index);
    }

    public static final int CRITERIA_FIELD_NUMBER = 5;
    private com.mysql.cj.x.protobuf.PolarxExpr.Expr criteria_;
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
     * @return Whether the criteria field is set.
     */
    public boolean hasCriteria() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
     * @return The criteria.
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria() {
      return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
    }
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder() {
      return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
    }

    public static final int ARGS_FIELD_NUMBER = 11;
    private java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> args_;
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> getArgsList() {
      return args_;
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
        getArgsOrBuilderList() {
      return args_;
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    public int getArgsCount() {
      return args_.size();
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index) {
      return args_.get(index);
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
        int index) {
      return args_.get(index);
    }

    public static final int LIMIT_FIELD_NUMBER = 6;
    private com.mysql.cj.polarx.protobuf.PolarxCrud.Limit limit_;
    /**
     * <code>optional .Polarx.Crud.Limit limit = 6;</code>
     * @return Whether the limit field is set.
     */
    public boolean hasLimit() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .Polarx.Crud.Limit limit = 6;</code>
     * @return The limit.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit() {
      return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
    }
    /**
     * <code>optional .Polarx.Crud.Limit limit = 6;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder() {
      return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
    }

    public static final int ORDER_FIELD_NUMBER = 7;
    private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> order_;
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> getOrderList() {
      return order_;
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
        getOrderOrBuilderList() {
      return order_;
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    public int getOrderCount() {
      return order_.size();
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index) {
      return order_.get(index);
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 7;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
        int index) {
      return order_.get(index);
    }

    public static final int GROUPING_FIELD_NUMBER = 8;
    private java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> grouping_;
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> getGroupingList() {
      return grouping_;
    }
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
        getGroupingOrBuilderList() {
      return grouping_;
    }
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    public int getGroupingCount() {
      return grouping_.size();
    }
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.Expr getGrouping(int index) {
      return grouping_.get(index);
    }
    /**
     * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getGroupingOrBuilder(
        int index) {
      return grouping_.get(index);
    }

    public static final int GROUPING_CRITERIA_FIELD_NUMBER = 9;
    private com.mysql.cj.x.protobuf.PolarxExpr.Expr groupingCriteria_;
    /**
     * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
     * @return Whether the groupingCriteria field is set.
     */
    public boolean hasGroupingCriteria() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
     * @return The groupingCriteria.
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.Expr getGroupingCriteria() {
      return groupingCriteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : groupingCriteria_;
    }
    /**
     * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getGroupingCriteriaOrBuilder() {
      return groupingCriteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : groupingCriteria_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasCollection()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getCollection().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getProjectionCount(); i++) {
        if (!getProjection(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasCriteria()) {
        if (!getCriteria().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getArgsCount(); i++) {
        if (!getArgs(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLimit()) {
        if (!getLimit().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getOrderCount(); i++) {
        if (!getOrder(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getGroupingCount(); i++) {
        if (!getGrouping(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGroupingCriteria()) {
        if (!getGroupingCriteria().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getCollection());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(3, dataModel_);
      }
      for (int i = 0; i < projection_.size(); i++) {
        output.writeMessage(4, projection_.get(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(5, getCriteria());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(6, getLimit());
      }
      for (int i = 0; i < order_.size(); i++) {
        output.writeMessage(7, order_.get(i));
      }
      for (int i = 0; i < grouping_.size(); i++) {
        output.writeMessage(8, grouping_.get(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeMessage(9, getGroupingCriteria());
      }
      for (int i = 0; i < args_.size(); i++) {
        output.writeMessage(11, args_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getCollection());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, dataModel_);
      }
      for (int i = 0; i < projection_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, projection_.get(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getCriteria());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getLimit());
      }
      for (int i = 0; i < order_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, order_.get(i));
      }
      for (int i = 0; i < grouping_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, grouping_.get(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getGroupingCriteria());
      }
      for (int i = 0; i < args_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, args_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Find)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Find other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Find) obj;

      if (hasCollection() != other.hasCollection()) return false;
      if (hasCollection()) {
        if (!getCollection()
            .equals(other.getCollection())) return false;
      }
      if (hasDataModel() != other.hasDataModel()) return false;
      if (hasDataModel()) {
        if (dataModel_ != other.dataModel_) return false;
      }
      if (!getProjectionList()
          .equals(other.getProjectionList())) return false;
      if (hasCriteria() != other.hasCriteria()) return false;
      if (hasCriteria()) {
        if (!getCriteria()
            .equals(other.getCriteria())) return false;
      }
      if (!getArgsList()
          .equals(other.getArgsList())) return false;
      if (hasLimit() != other.hasLimit()) return false;
      if (hasLimit()) {
        if (!getLimit()
            .equals(other.getLimit())) return false;
      }
      if (!getOrderList()
          .equals(other.getOrderList())) return false;
      if (!getGroupingList()
          .equals(other.getGroupingList())) return false;
      if (hasGroupingCriteria() != other.hasGroupingCriteria()) return false;
      if (hasGroupingCriteria()) {
        if (!getGroupingCriteria()
            .equals(other.getGroupingCriteria())) return false;
      }
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCollection()) {
        hash = (37 * hash) + COLLECTION_FIELD_NUMBER;
        hash = (53 * hash) + getCollection().hashCode();
      }
      if (hasDataModel()) {
        hash = (37 * hash) + DATA_MODEL_FIELD_NUMBER;
        hash = (53 * hash) + dataModel_;
      }
      if (getProjectionCount() > 0) {
        hash = (37 * hash) + PROJECTION_FIELD_NUMBER;
        hash = (53 * hash) + getProjectionList().hashCode();
      }
      if (hasCriteria()) {
        hash = (37 * hash) + CRITERIA_FIELD_NUMBER;
        hash = (53 * hash) + getCriteria().hashCode();
      }
      if (getArgsCount() > 0) {
        hash = (37 * hash) + ARGS_FIELD_NUMBER;
        hash = (53 * hash) + getArgsList().hashCode();
      }
      if (hasLimit()) {
        hash = (37 * hash) + LIMIT_FIELD_NUMBER;
        hash = (53 * hash) + getLimit().hashCode();
      }
      if (getOrderCount() > 0) {
        hash = (37 * hash) + ORDER_FIELD_NUMBER;
        hash = (53 * hash) + getOrderList().hashCode();
      }
      if (getGroupingCount() > 0) {
        hash = (37 * hash) + GROUPING_FIELD_NUMBER;
        hash = (53 * hash) + getGroupingList().hashCode();
      }
      if (hasGroupingCriteria()) {
        hash = (37 * hash) + GROUPING_CRITERIA_FIELD_NUMBER;
        hash = (53 * hash) + getGroupingCriteria().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Find prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Find Documents/Rows in a Collection/Table
     * .. uml::
     *   client -&gt; server: Find
     *   ... one or more Resultset ...
     * :param collection: collection to insert into
     * :param data_model: datamodel that the operations refer to
     * :param projection: list of column projections that shall be returned
     * :param args: values for parameters used in filter expression
     * :param criteria: filter criteria
     * :param limit: numbers of rows that shall be skipped and returned
     * :param order: sort-order in which the rows/document shall be returned in
     * :param grouping: column expression list for aggregation (GROUP BY)
     * :param grouping_criteria: filter criteria for aggregated groups
     * :Returns: :protobuf:msg:`Polarx.Resultset::`
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Find}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Find)
        com.mysql.cj.polarx.protobuf.PolarxCrud.FindOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Find_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Find_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Find.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Find.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Find.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getCollectionFieldBuilder();
          getProjectionFieldBuilder();
          getCriteriaFieldBuilder();
          getArgsFieldBuilder();
          getLimitFieldBuilder();
          getOrderFieldBuilder();
          getGroupingFieldBuilder();
          getGroupingCriteriaFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (collectionBuilder_ == null) {
          collection_ = null;
        } else {
          collectionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        dataModel_ = 1;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (projectionBuilder_ == null) {
          projection_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          projectionBuilder_.clear();
        }
        if (criteriaBuilder_ == null) {
          criteria_ = null;
        } else {
          criteriaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (argsBuilder_ == null) {
          args_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          argsBuilder_.clear();
        }
        if (limitBuilder_ == null) {
          limit_ = null;
        } else {
          limitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (orderBuilder_ == null) {
          order_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          orderBuilder_.clear();
        }
        if (groupingBuilder_ == null) {
          grouping_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          groupingBuilder_.clear();
        }
        if (groupingCriteriaBuilder_ == null) {
          groupingCriteria_ = null;
        } else {
          groupingCriteriaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Find_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Find getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Find.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Find build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Find result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Find buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Find result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Find(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (collectionBuilder_ == null) {
            result.collection_ = collection_;
          } else {
            result.collection_ = collectionBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.dataModel_ = dataModel_;
        if (projectionBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            projection_ = java.util.Collections.unmodifiableList(projection_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.projection_ = projection_;
        } else {
          result.projection_ = projectionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          if (criteriaBuilder_ == null) {
            result.criteria_ = criteria_;
          } else {
            result.criteria_ = criteriaBuilder_.build();
          }
          to_bitField0_ |= 0x00000004;
        }
        if (argsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            args_ = java.util.Collections.unmodifiableList(args_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.args_ = args_;
        } else {
          result.args_ = argsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          if (limitBuilder_ == null) {
            result.limit_ = limit_;
          } else {
            result.limit_ = limitBuilder_.build();
          }
          to_bitField0_ |= 0x00000008;
        }
        if (orderBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            order_ = java.util.Collections.unmodifiableList(order_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.order_ = order_;
        } else {
          result.order_ = orderBuilder_.build();
        }
        if (groupingBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0)) {
            grouping_ = java.util.Collections.unmodifiableList(grouping_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.grouping_ = grouping_;
        } else {
          result.grouping_ = groupingBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          if (groupingCriteriaBuilder_ == null) {
            result.groupingCriteria_ = groupingCriteria_;
          } else {
            result.groupingCriteria_ = groupingCriteriaBuilder_.build();
          }
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Find) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Find)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Find other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Find.getDefaultInstance()) return this;
        if (other.hasCollection()) {
          mergeCollection(other.getCollection());
        }
        if (other.hasDataModel()) {
          setDataModel(other.getDataModel());
        }
        if (projectionBuilder_ == null) {
          if (!other.projection_.isEmpty()) {
            if (projection_.isEmpty()) {
              projection_ = other.projection_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureProjectionIsMutable();
              projection_.addAll(other.projection_);
            }
            onChanged();
          }
        } else {
          if (!other.projection_.isEmpty()) {
            if (projectionBuilder_.isEmpty()) {
              projectionBuilder_.dispose();
              projectionBuilder_ = null;
              projection_ = other.projection_;
              bitField0_ = (bitField0_ & ~0x00000004);
              projectionBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getProjectionFieldBuilder() : null;
            } else {
              projectionBuilder_.addAllMessages(other.projection_);
            }
          }
        }
        if (other.hasCriteria()) {
          mergeCriteria(other.getCriteria());
        }
        if (argsBuilder_ == null) {
          if (!other.args_.isEmpty()) {
            if (args_.isEmpty()) {
              args_ = other.args_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureArgsIsMutable();
              args_.addAll(other.args_);
            }
            onChanged();
          }
        } else {
          if (!other.args_.isEmpty()) {
            if (argsBuilder_.isEmpty()) {
              argsBuilder_.dispose();
              argsBuilder_ = null;
              args_ = other.args_;
              bitField0_ = (bitField0_ & ~0x00000010);
              argsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getArgsFieldBuilder() : null;
            } else {
              argsBuilder_.addAllMessages(other.args_);
            }
          }
        }
        if (other.hasLimit()) {
          mergeLimit(other.getLimit());
        }
        if (orderBuilder_ == null) {
          if (!other.order_.isEmpty()) {
            if (order_.isEmpty()) {
              order_ = other.order_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureOrderIsMutable();
              order_.addAll(other.order_);
            }
            onChanged();
          }
        } else {
          if (!other.order_.isEmpty()) {
            if (orderBuilder_.isEmpty()) {
              orderBuilder_.dispose();
              orderBuilder_ = null;
              order_ = other.order_;
              bitField0_ = (bitField0_ & ~0x00000040);
              orderBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getOrderFieldBuilder() : null;
            } else {
              orderBuilder_.addAllMessages(other.order_);
            }
          }
        }
        if (groupingBuilder_ == null) {
          if (!other.grouping_.isEmpty()) {
            if (grouping_.isEmpty()) {
              grouping_ = other.grouping_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureGroupingIsMutable();
              grouping_.addAll(other.grouping_);
            }
            onChanged();
          }
        } else {
          if (!other.grouping_.isEmpty()) {
            if (groupingBuilder_.isEmpty()) {
              groupingBuilder_.dispose();
              groupingBuilder_ = null;
              grouping_ = other.grouping_;
              bitField0_ = (bitField0_ & ~0x00000080);
              groupingBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getGroupingFieldBuilder() : null;
            } else {
              groupingBuilder_.addAllMessages(other.grouping_);
            }
          }
        }
        if (other.hasGroupingCriteria()) {
          mergeGroupingCriteria(other.getGroupingCriteria());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasCollection()) {
          return false;
        }
        if (!getCollection().isInitialized()) {
          return false;
        }
        for (int i = 0; i < getProjectionCount(); i++) {
          if (!getProjection(i).isInitialized()) {
            return false;
          }
        }
        if (hasCriteria()) {
          if (!getCriteria().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getArgsCount(); i++) {
          if (!getArgs(i).isInitialized()) {
            return false;
          }
        }
        if (hasLimit()) {
          if (!getLimit().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getOrderCount(); i++) {
          if (!getOrder(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getGroupingCount(); i++) {
          if (!getGrouping(i).isInitialized()) {
            return false;
          }
        }
        if (hasGroupingCriteria()) {
            return getGroupingCriteria().isInitialized();
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Find parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Find) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.mysql.cj.polarx.protobuf.PolarxCrud.Collection collection_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder> collectionBuilder_;
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       * @return Whether the collection field is set.
       */
      public boolean hasCollection() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       * @return The collection.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection() {
        if (collectionBuilder_ == null) {
          return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
        } else {
          return collectionBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public Builder setCollection(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection value) {
        if (collectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          collection_ = value;
          onChanged();
        } else {
          collectionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public Builder setCollection(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder builderForValue) {
        if (collectionBuilder_ == null) {
          collection_ = builderForValue.build();
          onChanged();
        } else {
          collectionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public Builder mergeCollection(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection value) {
        if (collectionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              collection_ != null &&
              collection_ != com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance()) {
            collection_ =
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.newBuilder(collection_).mergeFrom(value).buildPartial();
          } else {
            collection_ = value;
          }
          onChanged();
        } else {
          collectionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public Builder clearCollection() {
        if (collectionBuilder_ == null) {
          collection_ = null;
          onChanged();
        } else {
          collectionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder getCollectionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getCollectionFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder() {
        if (collectionBuilder_ != null) {
          return collectionBuilder_.getMessageOrBuilder();
        } else {
          return collection_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
        }
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder> 
          getCollectionFieldBuilder() {
        if (collectionBuilder_ == null) {
          collectionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder>(
                  getCollection(),
                  getParentForChildren(),
                  isClean());
          collection_ = null;
        }
        return collectionBuilder_;
      }

      private int dataModel_ = 1;
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
       * @return Whether the dataModel field is set.
       */
      public boolean hasDataModel() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
       * @return The dataModel.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel() {
        @SuppressWarnings("deprecation")
        com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel result = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(dataModel_);
        return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.DOCUMENT : result;
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
       * @param value The dataModel to set.
       * @return This builder for chaining.
       */
      public Builder setDataModel(com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        dataModel_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataModel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        dataModel_ = 1;
        onChanged();
        return this;
      }

      private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Projection> projection_ =
        java.util.Collections.emptyList();
      private void ensureProjectionIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          projection_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Projection>(projection_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Projection, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder> projectionBuilder_;

      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Projection> getProjectionList() {
        if (projectionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(projection_);
        } else {
          return projectionBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public int getProjectionCount() {
        if (projectionBuilder_ == null) {
          return projection_.size();
        } else {
          return projectionBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection getProjection(int index) {
        if (projectionBuilder_ == null) {
          return projection_.get(index);
        } else {
          return projectionBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder setProjection(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection value) {
        if (projectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProjectionIsMutable();
          projection_.set(index, value);
          onChanged();
        } else {
          projectionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder setProjection(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder builderForValue) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          projection_.set(index, builderForValue.build());
          onChanged();
        } else {
          projectionBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder addProjection(com.mysql.cj.polarx.protobuf.PolarxCrud.Projection value) {
        if (projectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProjectionIsMutable();
          projection_.add(value);
          onChanged();
        } else {
          projectionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder addProjection(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection value) {
        if (projectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProjectionIsMutable();
          projection_.add(index, value);
          onChanged();
        } else {
          projectionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder addProjection(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder builderForValue) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          projection_.add(builderForValue.build());
          onChanged();
        } else {
          projectionBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder addProjection(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder builderForValue) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          projection_.add(index, builderForValue.build());
          onChanged();
        } else {
          projectionBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder addAllProjection(
          java.lang.Iterable<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Projection> values) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, projection_);
          onChanged();
        } else {
          projectionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder clearProjection() {
        if (projectionBuilder_ == null) {
          projection_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          projectionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public Builder removeProjection(int index) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          projection_.remove(index);
          onChanged();
        } else {
          projectionBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder getProjectionBuilder(
          int index) {
        return getProjectionFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder getProjectionOrBuilder(
          int index) {
        if (projectionBuilder_ == null) {
          return projection_.get(index);  } else {
          return projectionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder> 
           getProjectionOrBuilderList() {
        if (projectionBuilder_ != null) {
          return projectionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(projection_);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder addProjectionBuilder() {
        return getProjectionFieldBuilder().addBuilder(
            com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder addProjectionBuilder(
          int index) {
        return getProjectionFieldBuilder().addBuilder(
            index, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Projection projection = 4;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder> 
           getProjectionBuilderList() {
        return getProjectionFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Projection, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder> 
          getProjectionFieldBuilder() {
        if (projectionBuilder_ == null) {
          projectionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Projection, com.mysql.cj.polarx.protobuf.PolarxCrud.Projection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.ProjectionOrBuilder>(
                  projection_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          projection_ = null;
        }
        return projectionBuilder_;
      }

      private com.mysql.cj.x.protobuf.PolarxExpr.Expr criteria_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> criteriaBuilder_;
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       * @return Whether the criteria field is set.
       */
      public boolean hasCriteria() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       * @return The criteria.
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria() {
        if (criteriaBuilder_ == null) {
          return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
        } else {
          return criteriaBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       */
      public Builder setCriteria(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (criteriaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          criteria_ = value;
          onChanged();
        } else {
          criteriaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       */
      public Builder setCriteria(
          com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (criteriaBuilder_ == null) {
          criteria_ = builderForValue.build();
          onChanged();
        } else {
          criteriaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       */
      public Builder mergeCriteria(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (criteriaBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
              criteria_ != null &&
              criteria_ != com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance()) {
            criteria_ =
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.newBuilder(criteria_).mergeFrom(value).buildPartial();
          } else {
            criteria_ = value;
          }
          onChanged();
        } else {
          criteriaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       */
      public Builder clearCriteria() {
        if (criteriaBuilder_ == null) {
          criteria_ = null;
          onChanged();
        } else {
          criteriaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getCriteriaBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getCriteriaFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder() {
        if (criteriaBuilder_ != null) {
          return criteriaBuilder_.getMessageOrBuilder();
        } else {
          return criteria_ == null ?
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getCriteriaFieldBuilder() {
        if (criteriaBuilder_ == null) {
          criteriaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                  getCriteria(),
                  getParentForChildren(),
                  isClean());
          criteria_ = null;
        }
        return criteriaBuilder_;
      }

      private java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> args_ =
        java.util.Collections.emptyList();
      private void ensureArgsIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          args_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar>(args_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> argsBuilder_;

      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> getArgsList() {
        if (argsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(args_);
        } else {
          return argsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public int getArgsCount() {
        if (argsBuilder_ == null) {
          return args_.size();
        } else {
          return argsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index) {
        if (argsBuilder_ == null) {
          return args_.get(index);
        } else {
          return argsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder setArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.set(index, value);
          onChanged();
        } else {
          argsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder setArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.set(index, builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder addArgs(com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.add(value);
          onChanged();
        } else {
          argsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder addArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.add(index, value);
          onChanged();
        } else {
          argsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder addArgs(
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.add(builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder addArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.add(index, builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder addAllArgs(
          java.lang.Iterable<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> values) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, args_);
          onChanged();
        } else {
          argsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder clearArgs() {
        if (argsBuilder_ == null) {
          args_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          argsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public Builder removeArgs(int index) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.remove(index);
          onChanged();
        } else {
          argsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder getArgsBuilder(
          int index) {
        return getArgsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
          int index) {
        if (argsBuilder_ == null) {
          return args_.get(index);  } else {
          return argsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
           getArgsOrBuilderList() {
        if (argsBuilder_ != null) {
          return argsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(args_);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder addArgsBuilder() {
        return getArgsFieldBuilder().addBuilder(
            com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder addArgsBuilder(
          int index) {
        return getArgsFieldBuilder().addBuilder(
            index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 11;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder> 
           getArgsBuilderList() {
        return getArgsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
          getArgsFieldBuilder() {
        if (argsBuilder_ == null) {
          argsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder>(
                  args_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          args_ = null;
        }
        return argsBuilder_;
      }

      private com.mysql.cj.polarx.protobuf.PolarxCrud.Limit limit_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder> limitBuilder_;
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       * @return Whether the limit field is set.
       */
      public boolean hasLimit() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       * @return The limit.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit() {
        if (limitBuilder_ == null) {
          return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
        } else {
          return limitBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       */
      public Builder setLimit(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit value) {
        if (limitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          limit_ = value;
          onChanged();
        } else {
          limitBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       */
      public Builder setLimit(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder builderForValue) {
        if (limitBuilder_ == null) {
          limit_ = builderForValue.build();
          onChanged();
        } else {
          limitBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       */
      public Builder mergeLimit(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit value) {
        if (limitBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
              limit_ != null &&
              limit_ != com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance()) {
            limit_ =
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.newBuilder(limit_).mergeFrom(value).buildPartial();
          } else {
            limit_ = value;
          }
          onChanged();
        } else {
          limitBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       */
      public Builder clearLimit() {
        if (limitBuilder_ == null) {
          limit_ = null;
          onChanged();
        } else {
          limitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder getLimitBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getLimitFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder() {
        if (limitBuilder_ != null) {
          return limitBuilder_.getMessageOrBuilder();
        } else {
          return limit_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
        }
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder> 
          getLimitFieldBuilder() {
        if (limitBuilder_ == null) {
          limitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder>(
                  getLimit(),
                  getParentForChildren(),
                  isClean());
          limit_ = null;
        }
        return limitBuilder_;
      }

      private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> order_ =
        java.util.Collections.emptyList();
      private void ensureOrderIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          order_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Order>(order_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> orderBuilder_;

      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> getOrderList() {
        if (orderBuilder_ == null) {
          return java.util.Collections.unmodifiableList(order_);
        } else {
          return orderBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public int getOrderCount() {
        if (orderBuilder_ == null) {
          return order_.size();
        } else {
          return orderBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index) {
        if (orderBuilder_ == null) {
          return order_.get(index);
        } else {
          return orderBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder setOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.set(index, value);
          onChanged();
        } else {
          orderBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder setOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.set(index, builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder addOrder(com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.add(value);
          onChanged();
        } else {
          orderBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder addOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.add(index, value);
          onChanged();
        } else {
          orderBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder addOrder(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.add(builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder addOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.add(index, builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder addAllOrder(
          java.lang.Iterable<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Order> values) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, order_);
          onChanged();
        } else {
          orderBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder clearOrder() {
        if (orderBuilder_ == null) {
          order_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          orderBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public Builder removeOrder(int index) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.remove(index);
          onChanged();
        } else {
          orderBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder getOrderBuilder(
          int index) {
        return getOrderFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
          int index) {
        if (orderBuilder_ == null) {
          return order_.get(index);  } else {
          return orderBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
           getOrderOrBuilderList() {
        if (orderBuilder_ != null) {
          return orderBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(order_);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder addOrderBuilder() {
        return getOrderFieldBuilder().addBuilder(
            com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder addOrderBuilder(
          int index) {
        return getOrderFieldBuilder().addBuilder(
            index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 7;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder> 
           getOrderBuilderList() {
        return getOrderFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
          getOrderFieldBuilder() {
        if (orderBuilder_ == null) {
          orderBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder>(
                  order_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          order_ = null;
        }
        return orderBuilder_;
      }

      private java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> grouping_ =
        java.util.Collections.emptyList();
      private void ensureGroupingIsMutable() {
        if (!((bitField0_ & 0x00000080) != 0)) {
          grouping_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxExpr.Expr>(grouping_);
          bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> groupingBuilder_;

      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> getGroupingList() {
        if (groupingBuilder_ == null) {
          return java.util.Collections.unmodifiableList(grouping_);
        } else {
          return groupingBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public int getGroupingCount() {
        if (groupingBuilder_ == null) {
          return grouping_.size();
        } else {
          return groupingBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getGrouping(int index) {
        if (groupingBuilder_ == null) {
          return grouping_.get(index);
        } else {
          return groupingBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder setGrouping(
          int index, com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (groupingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGroupingIsMutable();
          grouping_.set(index, value);
          onChanged();
        } else {
          groupingBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder setGrouping(
          int index, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (groupingBuilder_ == null) {
          ensureGroupingIsMutable();
          grouping_.set(index, builderForValue.build());
          onChanged();
        } else {
          groupingBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder addGrouping(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (groupingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGroupingIsMutable();
          grouping_.add(value);
          onChanged();
        } else {
          groupingBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder addGrouping(
          int index, com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (groupingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGroupingIsMutable();
          grouping_.add(index, value);
          onChanged();
        } else {
          groupingBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder addGrouping(
          com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (groupingBuilder_ == null) {
          ensureGroupingIsMutable();
          grouping_.add(builderForValue.build());
          onChanged();
        } else {
          groupingBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder addGrouping(
          int index, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (groupingBuilder_ == null) {
          ensureGroupingIsMutable();
          grouping_.add(index, builderForValue.build());
          onChanged();
        } else {
          groupingBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder addAllGrouping(
          java.lang.Iterable<? extends com.mysql.cj.x.protobuf.PolarxExpr.Expr> values) {
        if (groupingBuilder_ == null) {
          ensureGroupingIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, grouping_);
          onChanged();
        } else {
          groupingBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder clearGrouping() {
        if (groupingBuilder_ == null) {
          grouping_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          groupingBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public Builder removeGrouping(int index) {
        if (groupingBuilder_ == null) {
          ensureGroupingIsMutable();
          grouping_.remove(index);
          onChanged();
        } else {
          groupingBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getGroupingBuilder(
          int index) {
        return getGroupingFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getGroupingOrBuilder(
          int index) {
        if (groupingBuilder_ == null) {
          return grouping_.get(index);  } else {
          return groupingBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
           getGroupingOrBuilderList() {
        if (groupingBuilder_ != null) {
          return groupingBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(grouping_);
        }
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder addGroupingBuilder() {
        return getGroupingFieldBuilder().addBuilder(
            com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder addGroupingBuilder(
          int index) {
        return getGroupingFieldBuilder().addBuilder(
            index, com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Expr.Expr grouping = 8;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder> 
           getGroupingBuilderList() {
        return getGroupingFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getGroupingFieldBuilder() {
        if (groupingBuilder_ == null) {
          groupingBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                  grouping_,
                  ((bitField0_ & 0x00000080) != 0),
                  getParentForChildren(),
                  isClean());
          grouping_ = null;
        }
        return groupingBuilder_;
      }

      private com.mysql.cj.x.protobuf.PolarxExpr.Expr groupingCriteria_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> groupingCriteriaBuilder_;
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       * @return Whether the groupingCriteria field is set.
       */
      public boolean hasGroupingCriteria() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       * @return The groupingCriteria.
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getGroupingCriteria() {
        if (groupingCriteriaBuilder_ == null) {
          return groupingCriteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : groupingCriteria_;
        } else {
          return groupingCriteriaBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       */
      public Builder setGroupingCriteria(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (groupingCriteriaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          groupingCriteria_ = value;
          onChanged();
        } else {
          groupingCriteriaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       */
      public Builder setGroupingCriteria(
          com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (groupingCriteriaBuilder_ == null) {
          groupingCriteria_ = builderForValue.build();
          onChanged();
        } else {
          groupingCriteriaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       */
      public Builder mergeGroupingCriteria(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (groupingCriteriaBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
              groupingCriteria_ != null &&
              groupingCriteria_ != com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance()) {
            groupingCriteria_ =
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.newBuilder(groupingCriteria_).mergeFrom(value).buildPartial();
          } else {
            groupingCriteria_ = value;
          }
          onChanged();
        } else {
          groupingCriteriaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       */
      public Builder clearGroupingCriteria() {
        if (groupingCriteriaBuilder_ == null) {
          groupingCriteria_ = null;
          onChanged();
        } else {
          groupingCriteriaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getGroupingCriteriaBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getGroupingCriteriaFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getGroupingCriteriaOrBuilder() {
        if (groupingCriteriaBuilder_ != null) {
          return groupingCriteriaBuilder_.getMessageOrBuilder();
        } else {
          return groupingCriteria_ == null ?
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : groupingCriteria_;
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr grouping_criteria = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getGroupingCriteriaFieldBuilder() {
        if (groupingCriteriaBuilder_ == null) {
          groupingCriteriaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                  getGroupingCriteria(),
                  getParentForChildren(),
                  isClean());
          groupingCriteria_ = null;
        }
        return groupingCriteriaBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Find)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Find)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Find DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Find();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Find getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Find>
        PARSER = new com.google.protobuf.AbstractParser<Find>() {
      @java.lang.Override
      public Find parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Find(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Find> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Find> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Find getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface InsertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Insert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     * @return Whether the collection field is set.
     */
    boolean hasCollection();
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     * @return The collection.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection();
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder();

    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
     * @return Whether the dataModel field is set.
     */
    boolean hasDataModel();
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
     * @return The dataModel.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel();

    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Column> 
        getProjectionList();
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Column getProjection(int index);
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    int getProjectionCount();
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder> 
        getProjectionOrBuilderList();
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder getProjectionOrBuilder(
        int index);

    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow> 
        getRowList();
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow getRow(int index);
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    int getRowCount();
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder> 
        getRowOrBuilderList();
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder getRowOrBuilder(
        int index);

    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> 
        getArgsList();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index);
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    int getArgsCount();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
        getArgsOrBuilderList();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Insert documents/rows into a collection/table
   * :param collection: collection to insert into
   * :param data_model: datamodel that the operations refer to
   * :param projection: name of the columns to insert data into (empty if data_model is DOCUMENT)
   * :param row: set of rows to insert into the collection/table (a single expression with a JSON document literal or an OBJECT expression)
   * :param args: values for parameters used in row expressions
   * :Returns: :protobuf:msg:`Polarx.Resultset::`
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Insert}
   */
  public  static final class Insert extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Insert)
      InsertOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Insert.newBuilder() to construct.
    private Insert(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Insert() {
      dataModel_ = 1;
      projection_ = java.util.Collections.emptyList();
      row_ = java.util.Collections.emptyList();
      args_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Insert();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Insert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = collection_.toBuilder();
              }
              collection_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(collection_);
                collection_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel value = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                dataModel_ = rawValue;
              }
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                projection_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Column>();
                mutable_bitField0_ |= 0x00000004;
              }
              projection_.add(
                  input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Column.PARSER, extensionRegistry));
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                row_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow>();
                mutable_bitField0_ |= 0x00000008;
              }
              row_.add(
                  input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.PARSER, extensionRegistry));
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                args_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar>();
                mutable_bitField0_ |= 0x00000010;
              }
              args_.add(
                  input.readMessage(com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          projection_ = java.util.Collections.unmodifiableList(projection_);
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          row_ = java.util.Collections.unmodifiableList(row_);
        }
        if (((mutable_bitField0_ & 0x00000010) != 0)) {
          args_ = java.util.Collections.unmodifiableList(args_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.Builder.class);
    }

    public interface TypedRowOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Polarx.Crud.Insert.TypedRow)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> 
          getFieldList();
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      com.mysql.cj.x.protobuf.PolarxExpr.Expr getField(int index);
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      int getFieldCount();
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getFieldOrBuilderList();
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getFieldOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code Polarx.Crud.Insert.TypedRow}
     */
    public  static final class TypedRow extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:Polarx.Crud.Insert.TypedRow)
        TypedRowOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use TypedRow.newBuilder() to construct.
      private TypedRow(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private TypedRow() {
        field_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new TypedRow();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private TypedRow(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  field_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxExpr.Expr>();
                  mutable_bitField0_ |= 0x00000001;
                }
                field_.add(
                    input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry));
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) != 0)) {
            field_ = java.util.Collections.unmodifiableList(field_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_TypedRow_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_TypedRow_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder.class);
      }

      public static final int FIELD_FIELD_NUMBER = 1;
      private java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> field_;
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> getFieldList() {
        return field_;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getFieldOrBuilderList() {
        return field_;
      }
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      public int getFieldCount() {
        return field_.size();
      }
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getField(int index) {
        return field_.get(index);
      }
      /**
       * <code>repeated .Polarx.Expr.Expr field = 1;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getFieldOrBuilder(
          int index) {
        return field_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        for (int i = 0; i < getFieldCount(); i++) {
          if (!getField(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < field_.size(); i++) {
          output.writeMessage(1, field_.get(i));
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        for (int i = 0; i < field_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, field_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow)) {
          return super.equals(obj);
        }
        com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow) obj;

        if (!getFieldList()
            .equals(other.getFieldList())) return false;
          return unknownFields.equals(other.unknownFields);
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getFieldCount() > 0) {
          hash = (37 * hash) + FIELD_FIELD_NUMBER;
          hash = (53 * hash) + getFieldList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code Polarx.Crud.Insert.TypedRow}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:Polarx.Crud.Insert.TypedRow)
          com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_TypedRow_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_TypedRow_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder.class);
        }

        // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getFieldFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (fieldBuilder_ == null) {
            field_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            fieldBuilder_.clear();
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_TypedRow_descriptor;
        }

        @java.lang.Override
        public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow getDefaultInstanceForType() {
          return com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.getDefaultInstance();
        }

        @java.lang.Override
        public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow build() {
          com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow buildPartial() {
          com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow(this);
          int from_bitField0_ = bitField0_;
          if (fieldBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              field_ = java.util.Collections.unmodifiableList(field_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.field_ = field_;
          } else {
            result.field_ = fieldBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow) {
            return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow other) {
          if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.getDefaultInstance()) return this;
          if (fieldBuilder_ == null) {
            if (!other.field_.isEmpty()) {
              if (field_.isEmpty()) {
                field_ = other.field_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureFieldIsMutable();
                field_.addAll(other.field_);
              }
              onChanged();
            }
          } else {
            if (!other.field_.isEmpty()) {
              if (fieldBuilder_.isEmpty()) {
                fieldBuilder_.dispose();
                fieldBuilder_ = null;
                field_ = other.field_;
                bitField0_ = (bitField0_ & ~0x00000001);
                fieldBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getFieldFieldBuilder() : null;
              } else {
                fieldBuilder_.addAllMessages(other.field_);
              }
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          for (int i = 0; i < getFieldCount(); i++) {
            if (!getField(i).isInitialized()) {
              return false;
            }
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> field_ =
          java.util.Collections.emptyList();
        private void ensureFieldIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            field_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxExpr.Expr>(field_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> fieldBuilder_;

        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr> getFieldList() {
          if (fieldBuilder_ == null) {
            return java.util.Collections.unmodifiableList(field_);
          } else {
            return fieldBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public int getFieldCount() {
          if (fieldBuilder_ == null) {
            return field_.size();
          } else {
            return fieldBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public com.mysql.cj.x.protobuf.PolarxExpr.Expr getField(int index) {
          if (fieldBuilder_ == null) {
            return field_.get(index);
          } else {
            return fieldBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder setField(
            int index, com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
          if (fieldBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFieldIsMutable();
            field_.set(index, value);
            onChanged();
          } else {
            fieldBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder setField(
            int index, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
          if (fieldBuilder_ == null) {
            ensureFieldIsMutable();
            field_.set(index, builderForValue.build());
            onChanged();
          } else {
            fieldBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder addField(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
          if (fieldBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFieldIsMutable();
            field_.add(value);
            onChanged();
          } else {
            fieldBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder addField(
            int index, com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
          if (fieldBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFieldIsMutable();
            field_.add(index, value);
            onChanged();
          } else {
            fieldBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder addField(
            com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
          if (fieldBuilder_ == null) {
            ensureFieldIsMutable();
            field_.add(builderForValue.build());
            onChanged();
          } else {
            fieldBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder addField(
            int index, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
          if (fieldBuilder_ == null) {
            ensureFieldIsMutable();
            field_.add(index, builderForValue.build());
            onChanged();
          } else {
            fieldBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder addAllField(
            java.lang.Iterable<? extends com.mysql.cj.x.protobuf.PolarxExpr.Expr> values) {
          if (fieldBuilder_ == null) {
            ensureFieldIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, field_);
            onChanged();
          } else {
            fieldBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder clearField() {
          if (fieldBuilder_ == null) {
            field_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            fieldBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public Builder removeField(int index) {
          if (fieldBuilder_ == null) {
            ensureFieldIsMutable();
            field_.remove(index);
            onChanged();
          } else {
            fieldBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getFieldBuilder(
            int index) {
          return getFieldFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getFieldOrBuilder(
            int index) {
          if (fieldBuilder_ == null) {
            return field_.get(index);  } else {
            return fieldBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
             getFieldOrBuilderList() {
          if (fieldBuilder_ != null) {
            return fieldBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(field_);
          }
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder addFieldBuilder() {
          return getFieldFieldBuilder().addBuilder(
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance());
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder addFieldBuilder(
            int index) {
          return getFieldFieldBuilder().addBuilder(
              index, com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance());
        }
        /**
         * <code>repeated .Polarx.Expr.Expr field = 1;</code>
         */
        public java.util.List<com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder> 
             getFieldBuilderList() {
          return getFieldFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
            getFieldFieldBuilder() {
          if (fieldBuilder_ == null) {
            fieldBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                    field_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            field_ = null;
          }
          return fieldBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:Polarx.Crud.Insert.TypedRow)
      }

      // @@protoc_insertion_point(class_scope:Polarx.Crud.Insert.TypedRow)
      private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow();
      }

      public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<TypedRow>
          PARSER = new com.google.protobuf.AbstractParser<TypedRow>() {
        @java.lang.Override
        public TypedRow parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new TypedRow(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser<TypedRow> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<TypedRow> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int COLLECTION_FIELD_NUMBER = 1;
    private com.mysql.cj.polarx.protobuf.PolarxCrud.Collection collection_;
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     * @return Whether the collection field is set.
     */
    public boolean hasCollection() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     * @return The collection.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection() {
      return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
    }
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder() {
      return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
    }

    public static final int DATA_MODEL_FIELD_NUMBER = 2;
    private int dataModel_;
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
     * @return Whether the dataModel field is set.
     */
    public boolean hasDataModel() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
     * @return The dataModel.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel() {
      @SuppressWarnings("deprecation")
      com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel result = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(dataModel_);
      return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.DOCUMENT : result;
    }

    public static final int PROJECTION_FIELD_NUMBER = 3;
    private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Column> projection_;
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Column> getProjectionList() {
      return projection_;
    }
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder> 
        getProjectionOrBuilderList() {
      return projection_;
    }
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    public int getProjectionCount() {
      return projection_.size();
    }
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Column getProjection(int index) {
      return projection_.get(index);
    }
    /**
     * <code>repeated .Polarx.Crud.Column projection = 3;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder getProjectionOrBuilder(
        int index) {
      return projection_.get(index);
    }

    public static final int ROW_FIELD_NUMBER = 4;
    private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow> row_;
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow> getRowList() {
      return row_;
    }
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder> 
        getRowOrBuilderList() {
      return row_;
    }
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    public int getRowCount() {
      return row_.size();
    }
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow getRow(int index) {
      return row_.get(index);
    }
    /**
     * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder getRowOrBuilder(
        int index) {
      return row_.get(index);
    }

    public static final int ARGS_FIELD_NUMBER = 5;
    private java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> args_;
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> getArgsList() {
      return args_;
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
        getArgsOrBuilderList() {
      return args_;
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    public int getArgsCount() {
      return args_.size();
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index) {
      return args_.get(index);
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
        int index) {
      return args_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasCollection()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getCollection().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getProjectionCount(); i++) {
        if (!getProjection(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getRowCount(); i++) {
        if (!getRow(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getArgsCount(); i++) {
        if (!getArgs(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getCollection());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, dataModel_);
      }
      for (int i = 0; i < projection_.size(); i++) {
        output.writeMessage(3, projection_.get(i));
      }
      for (int i = 0; i < row_.size(); i++) {
        output.writeMessage(4, row_.get(i));
      }
      for (int i = 0; i < args_.size(); i++) {
        output.writeMessage(5, args_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getCollection());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, dataModel_);
      }
      for (int i = 0; i < projection_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, projection_.get(i));
      }
      for (int i = 0; i < row_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, row_.get(i));
      }
      for (int i = 0; i < args_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, args_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Insert)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Insert other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Insert) obj;

      if (hasCollection() != other.hasCollection()) return false;
      if (hasCollection()) {
        if (!getCollection()
            .equals(other.getCollection())) return false;
      }
      if (hasDataModel() != other.hasDataModel()) return false;
      if (hasDataModel()) {
        if (dataModel_ != other.dataModel_) return false;
      }
      if (!getProjectionList()
          .equals(other.getProjectionList())) return false;
      if (!getRowList()
          .equals(other.getRowList())) return false;
      if (!getArgsList()
          .equals(other.getArgsList())) return false;
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCollection()) {
        hash = (37 * hash) + COLLECTION_FIELD_NUMBER;
        hash = (53 * hash) + getCollection().hashCode();
      }
      if (hasDataModel()) {
        hash = (37 * hash) + DATA_MODEL_FIELD_NUMBER;
        hash = (53 * hash) + dataModel_;
      }
      if (getProjectionCount() > 0) {
        hash = (37 * hash) + PROJECTION_FIELD_NUMBER;
        hash = (53 * hash) + getProjectionList().hashCode();
      }
      if (getRowCount() > 0) {
        hash = (37 * hash) + ROW_FIELD_NUMBER;
        hash = (53 * hash) + getRowList().hashCode();
      }
      if (getArgsCount() > 0) {
        hash = (37 * hash) + ARGS_FIELD_NUMBER;
        hash = (53 * hash) + getArgsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Insert prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Insert documents/rows into a collection/table
     * :param collection: collection to insert into
     * :param data_model: datamodel that the operations refer to
     * :param projection: name of the columns to insert data into (empty if data_model is DOCUMENT)
     * :param row: set of rows to insert into the collection/table (a single expression with a JSON document literal or an OBJECT expression)
     * :param args: values for parameters used in row expressions
     * :Returns: :protobuf:msg:`Polarx.Resultset::`
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Insert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Insert)
        com.mysql.cj.polarx.protobuf.PolarxCrud.InsertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getCollectionFieldBuilder();
          getProjectionFieldBuilder();
          getRowFieldBuilder();
          getArgsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (collectionBuilder_ == null) {
          collection_ = null;
        } else {
          collectionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        dataModel_ = 1;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (projectionBuilder_ == null) {
          projection_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          projectionBuilder_.clear();
        }
        if (rowBuilder_ == null) {
          row_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          rowBuilder_.clear();
        }
        if (argsBuilder_ == null) {
          args_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          argsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Insert_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Insert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Insert result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Insert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (collectionBuilder_ == null) {
            result.collection_ = collection_;
          } else {
            result.collection_ = collectionBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.dataModel_ = dataModel_;
        if (projectionBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            projection_ = java.util.Collections.unmodifiableList(projection_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.projection_ = projection_;
        } else {
          result.projection_ = projectionBuilder_.build();
        }
        if (rowBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            row_ = java.util.Collections.unmodifiableList(row_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.row_ = row_;
        } else {
          result.row_ = rowBuilder_.build();
        }
        if (argsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            args_ = java.util.Collections.unmodifiableList(args_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.args_ = args_;
        } else {
          result.args_ = argsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Insert) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Insert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Insert other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.getDefaultInstance()) return this;
        if (other.hasCollection()) {
          mergeCollection(other.getCollection());
        }
        if (other.hasDataModel()) {
          setDataModel(other.getDataModel());
        }
        if (projectionBuilder_ == null) {
          if (!other.projection_.isEmpty()) {
            if (projection_.isEmpty()) {
              projection_ = other.projection_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureProjectionIsMutable();
              projection_.addAll(other.projection_);
            }
            onChanged();
          }
        } else {
          if (!other.projection_.isEmpty()) {
            if (projectionBuilder_.isEmpty()) {
              projectionBuilder_.dispose();
              projectionBuilder_ = null;
              projection_ = other.projection_;
              bitField0_ = (bitField0_ & ~0x00000004);
              projectionBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getProjectionFieldBuilder() : null;
            } else {
              projectionBuilder_.addAllMessages(other.projection_);
            }
          }
        }
        if (rowBuilder_ == null) {
          if (!other.row_.isEmpty()) {
            if (row_.isEmpty()) {
              row_ = other.row_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureRowIsMutable();
              row_.addAll(other.row_);
            }
            onChanged();
          }
        } else {
          if (!other.row_.isEmpty()) {
            if (rowBuilder_.isEmpty()) {
              rowBuilder_.dispose();
              rowBuilder_ = null;
              row_ = other.row_;
              bitField0_ = (bitField0_ & ~0x00000008);
              rowBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRowFieldBuilder() : null;
            } else {
              rowBuilder_.addAllMessages(other.row_);
            }
          }
        }
        if (argsBuilder_ == null) {
          if (!other.args_.isEmpty()) {
            if (args_.isEmpty()) {
              args_ = other.args_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureArgsIsMutable();
              args_.addAll(other.args_);
            }
            onChanged();
          }
        } else {
          if (!other.args_.isEmpty()) {
            if (argsBuilder_.isEmpty()) {
              argsBuilder_.dispose();
              argsBuilder_ = null;
              args_ = other.args_;
              bitField0_ = (bitField0_ & ~0x00000010);
              argsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getArgsFieldBuilder() : null;
            } else {
              argsBuilder_.addAllMessages(other.args_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasCollection()) {
          return false;
        }
        if (!getCollection().isInitialized()) {
          return false;
        }
        for (int i = 0; i < getProjectionCount(); i++) {
          if (!getProjection(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getRowCount(); i++) {
          if (!getRow(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getArgsCount(); i++) {
          if (!getArgs(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Insert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Insert) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.mysql.cj.polarx.protobuf.PolarxCrud.Collection collection_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder> collectionBuilder_;
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       * @return Whether the collection field is set.
       */
      public boolean hasCollection() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       * @return The collection.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection() {
        if (collectionBuilder_ == null) {
          return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
        } else {
          return collectionBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public Builder setCollection(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection value) {
        if (collectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          collection_ = value;
          onChanged();
        } else {
          collectionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public Builder setCollection(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder builderForValue) {
        if (collectionBuilder_ == null) {
          collection_ = builderForValue.build();
          onChanged();
        } else {
          collectionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public Builder mergeCollection(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection value) {
        if (collectionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              collection_ != null &&
              collection_ != com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance()) {
            collection_ =
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.newBuilder(collection_).mergeFrom(value).buildPartial();
          } else {
            collection_ = value;
          }
          onChanged();
        } else {
          collectionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public Builder clearCollection() {
        if (collectionBuilder_ == null) {
          collection_ = null;
          onChanged();
        } else {
          collectionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder getCollectionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getCollectionFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder() {
        if (collectionBuilder_ != null) {
          return collectionBuilder_.getMessageOrBuilder();
        } else {
          return collection_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
        }
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder> 
          getCollectionFieldBuilder() {
        if (collectionBuilder_ == null) {
          collectionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder>(
                  getCollection(),
                  getParentForChildren(),
                  isClean());
          collection_ = null;
        }
        return collectionBuilder_;
      }

      private int dataModel_ = 1;
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
       * @return Whether the dataModel field is set.
       */
      public boolean hasDataModel() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
       * @return The dataModel.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel() {
        @SuppressWarnings("deprecation")
        com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel result = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(dataModel_);
        return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.DOCUMENT : result;
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
       * @param value The dataModel to set.
       * @return This builder for chaining.
       */
      public Builder setDataModel(com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        dataModel_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataModel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        dataModel_ = 1;
        onChanged();
        return this;
      }

      private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Column> projection_ =
        java.util.Collections.emptyList();
      private void ensureProjectionIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          projection_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Column>(projection_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Column, com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder> projectionBuilder_;

      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Column> getProjectionList() {
        if (projectionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(projection_);
        } else {
          return projectionBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public int getProjectionCount() {
        if (projectionBuilder_ == null) {
          return projection_.size();
        } else {
          return projectionBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Column getProjection(int index) {
        if (projectionBuilder_ == null) {
          return projection_.get(index);
        } else {
          return projectionBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder setProjection(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Column value) {
        if (projectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProjectionIsMutable();
          projection_.set(index, value);
          onChanged();
        } else {
          projectionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder setProjection(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder builderForValue) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          projection_.set(index, builderForValue.build());
          onChanged();
        } else {
          projectionBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder addProjection(com.mysql.cj.polarx.protobuf.PolarxCrud.Column value) {
        if (projectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProjectionIsMutable();
          projection_.add(value);
          onChanged();
        } else {
          projectionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder addProjection(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Column value) {
        if (projectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProjectionIsMutable();
          projection_.add(index, value);
          onChanged();
        } else {
          projectionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder addProjection(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder builderForValue) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          projection_.add(builderForValue.build());
          onChanged();
        } else {
          projectionBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder addProjection(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder builderForValue) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          projection_.add(index, builderForValue.build());
          onChanged();
        } else {
          projectionBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder addAllProjection(
          java.lang.Iterable<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Column> values) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, projection_);
          onChanged();
        } else {
          projectionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder clearProjection() {
        if (projectionBuilder_ == null) {
          projection_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          projectionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public Builder removeProjection(int index) {
        if (projectionBuilder_ == null) {
          ensureProjectionIsMutable();
          projection_.remove(index);
          onChanged();
        } else {
          projectionBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder getProjectionBuilder(
          int index) {
        return getProjectionFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder getProjectionOrBuilder(
          int index) {
        if (projectionBuilder_ == null) {
          return projection_.get(index);  } else {
          return projectionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder> 
           getProjectionOrBuilderList() {
        if (projectionBuilder_ != null) {
          return projectionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(projection_);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder addProjectionBuilder() {
        return getProjectionFieldBuilder().addBuilder(
            com.mysql.cj.polarx.protobuf.PolarxCrud.Column.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder addProjectionBuilder(
          int index) {
        return getProjectionFieldBuilder().addBuilder(
            index, com.mysql.cj.polarx.protobuf.PolarxCrud.Column.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Column projection = 3;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder> 
           getProjectionBuilderList() {
        return getProjectionFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Column, com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder> 
          getProjectionFieldBuilder() {
        if (projectionBuilder_ == null) {
          projectionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Column, com.mysql.cj.polarx.protobuf.PolarxCrud.Column.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.ColumnOrBuilder>(
                  projection_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          projection_ = null;
        }
        return projectionBuilder_;
      }

      private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow> row_ =
        java.util.Collections.emptyList();
      private void ensureRowIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          row_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow>(row_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder> rowBuilder_;

      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow> getRowList() {
        if (rowBuilder_ == null) {
          return java.util.Collections.unmodifiableList(row_);
        } else {
          return rowBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public int getRowCount() {
        if (rowBuilder_ == null) {
          return row_.size();
        } else {
          return rowBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow getRow(int index) {
        if (rowBuilder_ == null) {
          return row_.get(index);
        } else {
          return rowBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder setRow(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow value) {
        if (rowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowIsMutable();
          row_.set(index, value);
          onChanged();
        } else {
          rowBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder setRow(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder builderForValue) {
        if (rowBuilder_ == null) {
          ensureRowIsMutable();
          row_.set(index, builderForValue.build());
          onChanged();
        } else {
          rowBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder addRow(com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow value) {
        if (rowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowIsMutable();
          row_.add(value);
          onChanged();
        } else {
          rowBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder addRow(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow value) {
        if (rowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRowIsMutable();
          row_.add(index, value);
          onChanged();
        } else {
          rowBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder addRow(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder builderForValue) {
        if (rowBuilder_ == null) {
          ensureRowIsMutable();
          row_.add(builderForValue.build());
          onChanged();
        } else {
          rowBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder addRow(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder builderForValue) {
        if (rowBuilder_ == null) {
          ensureRowIsMutable();
          row_.add(index, builderForValue.build());
          onChanged();
        } else {
          rowBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder addAllRow(
          java.lang.Iterable<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow> values) {
        if (rowBuilder_ == null) {
          ensureRowIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, row_);
          onChanged();
        } else {
          rowBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder clearRow() {
        if (rowBuilder_ == null) {
          row_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          rowBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public Builder removeRow(int index) {
        if (rowBuilder_ == null) {
          ensureRowIsMutable();
          row_.remove(index);
          onChanged();
        } else {
          rowBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder getRowBuilder(
          int index) {
        return getRowFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder getRowOrBuilder(
          int index) {
        if (rowBuilder_ == null) {
          return row_.get(index);  } else {
          return rowBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder> 
           getRowOrBuilderList() {
        if (rowBuilder_ != null) {
          return rowBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(row_);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder addRowBuilder() {
        return getRowFieldBuilder().addBuilder(
            com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder addRowBuilder(
          int index) {
        return getRowFieldBuilder().addBuilder(
            index, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Insert.TypedRow row = 4;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder> 
           getRowBuilderList() {
        return getRowFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder> 
          getRowFieldBuilder() {
        if (rowBuilder_ == null) {
          rowBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRow.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.Insert.TypedRowOrBuilder>(
                  row_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          row_ = null;
        }
        return rowBuilder_;
      }

      private java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> args_ =
        java.util.Collections.emptyList();
      private void ensureArgsIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          args_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar>(args_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> argsBuilder_;

      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> getArgsList() {
        if (argsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(args_);
        } else {
          return argsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public int getArgsCount() {
        if (argsBuilder_ == null) {
          return args_.size();
        } else {
          return argsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index) {
        if (argsBuilder_ == null) {
          return args_.get(index);
        } else {
          return argsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder setArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.set(index, value);
          onChanged();
        } else {
          argsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder setArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.set(index, builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder addArgs(com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.add(value);
          onChanged();
        } else {
          argsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder addArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.add(index, value);
          onChanged();
        } else {
          argsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder addArgs(
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.add(builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder addArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.add(index, builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder addAllArgs(
          java.lang.Iterable<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> values) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, args_);
          onChanged();
        } else {
          argsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder clearArgs() {
        if (argsBuilder_ == null) {
          args_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          argsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public Builder removeArgs(int index) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.remove(index);
          onChanged();
        } else {
          argsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder getArgsBuilder(
          int index) {
        return getArgsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
          int index) {
        if (argsBuilder_ == null) {
          return args_.get(index);  } else {
          return argsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
           getArgsOrBuilderList() {
        if (argsBuilder_ != null) {
          return argsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(args_);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder addArgsBuilder() {
        return getArgsFieldBuilder().addBuilder(
            com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder addArgsBuilder(
          int index) {
        return getArgsFieldBuilder().addBuilder(
            index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 5;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder> 
           getArgsBuilderList() {
        return getArgsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
          getArgsFieldBuilder() {
        if (argsBuilder_ == null) {
          argsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder>(
                  args_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          args_ = null;
        }
        return argsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Insert)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Insert)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Insert DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Insert();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Insert getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Insert>
        PARSER = new com.google.protobuf.AbstractParser<Insert>() {
      @java.lang.Override
      public Insert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Insert(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Insert> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Insert> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Insert getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UpdateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Update)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     * @return Whether the collection field is set.
     */
    boolean hasCollection();
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     * @return The collection.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection();
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder();

    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
     * @return Whether the dataModel field is set.
     */
    boolean hasDataModel();
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
     * @return The dataModel.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel();

    /**
     * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
     * @return Whether the criteria field is set.
     */
    boolean hasCriteria();
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
     * @return The criteria.
     */
    com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria();
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder();

    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> 
        getArgsList();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index);
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    int getArgsCount();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
        getArgsOrBuilderList();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
        int index);

    /**
     * <code>optional .Polarx.Crud.Limit limit = 5;</code>
     * @return Whether the limit field is set.
     */
    boolean hasLimit();
    /**
     * <code>optional .Polarx.Crud.Limit limit = 5;</code>
     * @return The limit.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit();
    /**
     * <code>optional .Polarx.Crud.Limit limit = 5;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder();

    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> 
        getOrderList();
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index);
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    int getOrderCount();
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
        getOrderOrBuilderList();
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
        int index);

    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation> 
        getOperationList();
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation getOperation(int index);
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    int getOperationCount();
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder> 
        getOperationOrBuilderList();
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder getOperationOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Update documents/rows in a collection/table
   * :param collection: collection to change
   * :param data_model: datamodel that the operations refer to
   * :param criteria: filter expression to match rows that the operations will apply on
   * :param args: values for parameters used in filter expression
   * :param limit: limits the number of rows to match
   * :param order: specifies order of matched rows
   * :param operation: list of operations to be applied. Valid operations will depend on the data_model.
   * :Returns: :protobuf:msg:`Polarx.Resultset::`
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Update}
   */
  public  static final class Update extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Update)
      UpdateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Update.newBuilder() to construct.
    private Update(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Update() {
      dataModel_ = 1;
      args_ = java.util.Collections.emptyList();
      order_ = java.util.Collections.emptyList();
      operation_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Update();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Update(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 18: {
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = collection_.toBuilder();
              }
              collection_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(collection_);
                collection_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel value = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                dataModel_ = rawValue;
              }
              break;
            }
            case 34: {
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) != 0)) {
                subBuilder = criteria_.toBuilder();
              }
              criteria_ = input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(criteria_);
                criteria_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 42: {
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) != 0)) {
                subBuilder = limit_.toBuilder();
              }
              limit_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(limit_);
                limit_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                order_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Order>();
                mutable_bitField0_ |= 0x00000020;
              }
              order_.add(
                  input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Order.PARSER, extensionRegistry));
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) != 0)) {
                operation_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation>();
                mutable_bitField0_ |= 0x00000040;
              }
              operation_.add(
                  input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.PARSER, extensionRegistry));
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                args_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar>();
                mutable_bitField0_ |= 0x00000008;
              }
              args_.add(
                  input.readMessage(com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) != 0)) {
          order_ = java.util.Collections.unmodifiableList(order_);
        }
        if (((mutable_bitField0_ & 0x00000040) != 0)) {
          operation_ = java.util.Collections.unmodifiableList(operation_);
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          args_ = java.util.Collections.unmodifiableList(args_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Update_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Update_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Update.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Update.Builder.class);
    }

    private int bitField0_;
    public static final int COLLECTION_FIELD_NUMBER = 2;
    private com.mysql.cj.polarx.protobuf.PolarxCrud.Collection collection_;
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     * @return Whether the collection field is set.
     */
    public boolean hasCollection() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     * @return The collection.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection() {
      return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
    }
    /**
     * <code>required .Polarx.Crud.Collection collection = 2;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder() {
      return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
    }

    public static final int DATA_MODEL_FIELD_NUMBER = 3;
    private int dataModel_;
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
     * @return Whether the dataModel field is set.
     */
    public boolean hasDataModel() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
     * @return The dataModel.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel() {
      @SuppressWarnings("deprecation")
      com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel result = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(dataModel_);
      return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.DOCUMENT : result;
    }

    public static final int CRITERIA_FIELD_NUMBER = 4;
    private com.mysql.cj.x.protobuf.PolarxExpr.Expr criteria_;
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
     * @return Whether the criteria field is set.
     */
    public boolean hasCriteria() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
     * @return The criteria.
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria() {
      return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
    }
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder() {
      return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
    }

    public static final int ARGS_FIELD_NUMBER = 8;
    private java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> args_;
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> getArgsList() {
      return args_;
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
        getArgsOrBuilderList() {
      return args_;
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    public int getArgsCount() {
      return args_.size();
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index) {
      return args_.get(index);
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
        int index) {
      return args_.get(index);
    }

    public static final int LIMIT_FIELD_NUMBER = 5;
    private com.mysql.cj.polarx.protobuf.PolarxCrud.Limit limit_;
    /**
     * <code>optional .Polarx.Crud.Limit limit = 5;</code>
     * @return Whether the limit field is set.
     */
    public boolean hasLimit() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .Polarx.Crud.Limit limit = 5;</code>
     * @return The limit.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit() {
      return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
    }
    /**
     * <code>optional .Polarx.Crud.Limit limit = 5;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder() {
      return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
    }

    public static final int ORDER_FIELD_NUMBER = 6;
    private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> order_;
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> getOrderList() {
      return order_;
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
        getOrderOrBuilderList() {
      return order_;
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    public int getOrderCount() {
      return order_.size();
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index) {
      return order_.get(index);
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 6;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
        int index) {
      return order_.get(index);
    }

    public static final int OPERATION_FIELD_NUMBER = 7;
    private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation> operation_;
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation> getOperationList() {
      return operation_;
    }
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder> 
        getOperationOrBuilderList() {
      return operation_;
    }
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    public int getOperationCount() {
      return operation_.size();
    }
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation getOperation(int index) {
      return operation_.get(index);
    }
    /**
     * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder getOperationOrBuilder(
        int index) {
      return operation_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasCollection()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getCollection().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasCriteria()) {
        if (!getCriteria().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getArgsCount(); i++) {
        if (!getArgs(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLimit()) {
        if (!getLimit().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getOrderCount(); i++) {
        if (!getOrder(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getOperationCount(); i++) {
        if (!getOperation(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getCollection());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(3, dataModel_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(4, getCriteria());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(5, getLimit());
      }
      for (int i = 0; i < order_.size(); i++) {
        output.writeMessage(6, order_.get(i));
      }
      for (int i = 0; i < operation_.size(); i++) {
        output.writeMessage(7, operation_.get(i));
      }
      for (int i = 0; i < args_.size(); i++) {
        output.writeMessage(8, args_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getCollection());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, dataModel_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getCriteria());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getLimit());
      }
      for (int i = 0; i < order_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, order_.get(i));
      }
      for (int i = 0; i < operation_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, operation_.get(i));
      }
      for (int i = 0; i < args_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, args_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Update)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Update other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Update) obj;

      if (hasCollection() != other.hasCollection()) return false;
      if (hasCollection()) {
        if (!getCollection()
            .equals(other.getCollection())) return false;
      }
      if (hasDataModel() != other.hasDataModel()) return false;
      if (hasDataModel()) {
        if (dataModel_ != other.dataModel_) return false;
      }
      if (hasCriteria() != other.hasCriteria()) return false;
      if (hasCriteria()) {
        if (!getCriteria()
            .equals(other.getCriteria())) return false;
      }
      if (!getArgsList()
          .equals(other.getArgsList())) return false;
      if (hasLimit() != other.hasLimit()) return false;
      if (hasLimit()) {
        if (!getLimit()
            .equals(other.getLimit())) return false;
      }
      if (!getOrderList()
          .equals(other.getOrderList())) return false;
      if (!getOperationList()
          .equals(other.getOperationList())) return false;
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCollection()) {
        hash = (37 * hash) + COLLECTION_FIELD_NUMBER;
        hash = (53 * hash) + getCollection().hashCode();
      }
      if (hasDataModel()) {
        hash = (37 * hash) + DATA_MODEL_FIELD_NUMBER;
        hash = (53 * hash) + dataModel_;
      }
      if (hasCriteria()) {
        hash = (37 * hash) + CRITERIA_FIELD_NUMBER;
        hash = (53 * hash) + getCriteria().hashCode();
      }
      if (getArgsCount() > 0) {
        hash = (37 * hash) + ARGS_FIELD_NUMBER;
        hash = (53 * hash) + getArgsList().hashCode();
      }
      if (hasLimit()) {
        hash = (37 * hash) + LIMIT_FIELD_NUMBER;
        hash = (53 * hash) + getLimit().hashCode();
      }
      if (getOrderCount() > 0) {
        hash = (37 * hash) + ORDER_FIELD_NUMBER;
        hash = (53 * hash) + getOrderList().hashCode();
      }
      if (getOperationCount() > 0) {
        hash = (37 * hash) + OPERATION_FIELD_NUMBER;
        hash = (53 * hash) + getOperationList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Update prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Update documents/rows in a collection/table
     * :param collection: collection to change
     * :param data_model: datamodel that the operations refer to
     * :param criteria: filter expression to match rows that the operations will apply on
     * :param args: values for parameters used in filter expression
     * :param limit: limits the number of rows to match
     * :param order: specifies order of matched rows
     * :param operation: list of operations to be applied. Valid operations will depend on the data_model.
     * :Returns: :protobuf:msg:`Polarx.Resultset::`
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Update}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Update)
        com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Update_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Update_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Update.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Update.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Update.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getCollectionFieldBuilder();
          getCriteriaFieldBuilder();
          getArgsFieldBuilder();
          getLimitFieldBuilder();
          getOrderFieldBuilder();
          getOperationFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (collectionBuilder_ == null) {
          collection_ = null;
        } else {
          collectionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        dataModel_ = 1;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (criteriaBuilder_ == null) {
          criteria_ = null;
        } else {
          criteriaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (argsBuilder_ == null) {
          args_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          argsBuilder_.clear();
        }
        if (limitBuilder_ == null) {
          limit_ = null;
        } else {
          limitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (orderBuilder_ == null) {
          order_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          orderBuilder_.clear();
        }
        if (operationBuilder_ == null) {
          operation_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          operationBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Update_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Update getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Update.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Update build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Update result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Update buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Update result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Update(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (collectionBuilder_ == null) {
            result.collection_ = collection_;
          } else {
            result.collection_ = collectionBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.dataModel_ = dataModel_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (criteriaBuilder_ == null) {
            result.criteria_ = criteria_;
          } else {
            result.criteria_ = criteriaBuilder_.build();
          }
          to_bitField0_ |= 0x00000004;
        }
        if (argsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            args_ = java.util.Collections.unmodifiableList(args_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.args_ = args_;
        } else {
          result.args_ = argsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          if (limitBuilder_ == null) {
            result.limit_ = limit_;
          } else {
            result.limit_ = limitBuilder_.build();
          }
          to_bitField0_ |= 0x00000008;
        }
        if (orderBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            order_ = java.util.Collections.unmodifiableList(order_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.order_ = order_;
        } else {
          result.order_ = orderBuilder_.build();
        }
        if (operationBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            operation_ = java.util.Collections.unmodifiableList(operation_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.operation_ = operation_;
        } else {
          result.operation_ = operationBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Update) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Update)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Update other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Update.getDefaultInstance()) return this;
        if (other.hasCollection()) {
          mergeCollection(other.getCollection());
        }
        if (other.hasDataModel()) {
          setDataModel(other.getDataModel());
        }
        if (other.hasCriteria()) {
          mergeCriteria(other.getCriteria());
        }
        if (argsBuilder_ == null) {
          if (!other.args_.isEmpty()) {
            if (args_.isEmpty()) {
              args_ = other.args_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureArgsIsMutable();
              args_.addAll(other.args_);
            }
            onChanged();
          }
        } else {
          if (!other.args_.isEmpty()) {
            if (argsBuilder_.isEmpty()) {
              argsBuilder_.dispose();
              argsBuilder_ = null;
              args_ = other.args_;
              bitField0_ = (bitField0_ & ~0x00000008);
              argsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getArgsFieldBuilder() : null;
            } else {
              argsBuilder_.addAllMessages(other.args_);
            }
          }
        }
        if (other.hasLimit()) {
          mergeLimit(other.getLimit());
        }
        if (orderBuilder_ == null) {
          if (!other.order_.isEmpty()) {
            if (order_.isEmpty()) {
              order_ = other.order_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureOrderIsMutable();
              order_.addAll(other.order_);
            }
            onChanged();
          }
        } else {
          if (!other.order_.isEmpty()) {
            if (orderBuilder_.isEmpty()) {
              orderBuilder_.dispose();
              orderBuilder_ = null;
              order_ = other.order_;
              bitField0_ = (bitField0_ & ~0x00000020);
              orderBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getOrderFieldBuilder() : null;
            } else {
              orderBuilder_.addAllMessages(other.order_);
            }
          }
        }
        if (operationBuilder_ == null) {
          if (!other.operation_.isEmpty()) {
            if (operation_.isEmpty()) {
              operation_ = other.operation_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureOperationIsMutable();
              operation_.addAll(other.operation_);
            }
            onChanged();
          }
        } else {
          if (!other.operation_.isEmpty()) {
            if (operationBuilder_.isEmpty()) {
              operationBuilder_.dispose();
              operationBuilder_ = null;
              operation_ = other.operation_;
              bitField0_ = (bitField0_ & ~0x00000040);
              operationBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getOperationFieldBuilder() : null;
            } else {
              operationBuilder_.addAllMessages(other.operation_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasCollection()) {
          return false;
        }
        if (!getCollection().isInitialized()) {
          return false;
        }
        if (hasCriteria()) {
          if (!getCriteria().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getArgsCount(); i++) {
          if (!getArgs(i).isInitialized()) {
            return false;
          }
        }
        if (hasLimit()) {
          if (!getLimit().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getOrderCount(); i++) {
          if (!getOrder(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getOperationCount(); i++) {
          if (!getOperation(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Update parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Update) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.mysql.cj.polarx.protobuf.PolarxCrud.Collection collection_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder> collectionBuilder_;
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       * @return Whether the collection field is set.
       */
      public boolean hasCollection() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       * @return The collection.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection() {
        if (collectionBuilder_ == null) {
          return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
        } else {
          return collectionBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public Builder setCollection(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection value) {
        if (collectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          collection_ = value;
          onChanged();
        } else {
          collectionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public Builder setCollection(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder builderForValue) {
        if (collectionBuilder_ == null) {
          collection_ = builderForValue.build();
          onChanged();
        } else {
          collectionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public Builder mergeCollection(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection value) {
        if (collectionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              collection_ != null &&
              collection_ != com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance()) {
            collection_ =
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.newBuilder(collection_).mergeFrom(value).buildPartial();
          } else {
            collection_ = value;
          }
          onChanged();
        } else {
          collectionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public Builder clearCollection() {
        if (collectionBuilder_ == null) {
          collection_ = null;
          onChanged();
        } else {
          collectionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder getCollectionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getCollectionFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder() {
        if (collectionBuilder_ != null) {
          return collectionBuilder_.getMessageOrBuilder();
        } else {
          return collection_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
        }
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder> 
          getCollectionFieldBuilder() {
        if (collectionBuilder_ == null) {
          collectionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder>(
                  getCollection(),
                  getParentForChildren(),
                  isClean());
          collection_ = null;
        }
        return collectionBuilder_;
      }

      private int dataModel_ = 1;
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
       * @return Whether the dataModel field is set.
       */
      public boolean hasDataModel() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
       * @return The dataModel.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel() {
        @SuppressWarnings("deprecation")
        com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel result = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(dataModel_);
        return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.DOCUMENT : result;
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
       * @param value The dataModel to set.
       * @return This builder for chaining.
       */
      public Builder setDataModel(com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        dataModel_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataModel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        dataModel_ = 1;
        onChanged();
        return this;
      }

      private com.mysql.cj.x.protobuf.PolarxExpr.Expr criteria_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> criteriaBuilder_;
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       * @return Whether the criteria field is set.
       */
      public boolean hasCriteria() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       * @return The criteria.
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria() {
        if (criteriaBuilder_ == null) {
          return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
        } else {
          return criteriaBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       */
      public Builder setCriteria(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (criteriaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          criteria_ = value;
          onChanged();
        } else {
          criteriaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       */
      public Builder setCriteria(
          com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (criteriaBuilder_ == null) {
          criteria_ = builderForValue.build();
          onChanged();
        } else {
          criteriaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       */
      public Builder mergeCriteria(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (criteriaBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              criteria_ != null &&
              criteria_ != com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance()) {
            criteria_ =
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.newBuilder(criteria_).mergeFrom(value).buildPartial();
          } else {
            criteria_ = value;
          }
          onChanged();
        } else {
          criteriaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       */
      public Builder clearCriteria() {
        if (criteriaBuilder_ == null) {
          criteria_ = null;
          onChanged();
        } else {
          criteriaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getCriteriaBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getCriteriaFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder() {
        if (criteriaBuilder_ != null) {
          return criteriaBuilder_.getMessageOrBuilder();
        } else {
          return criteria_ == null ?
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getCriteriaFieldBuilder() {
        if (criteriaBuilder_ == null) {
          criteriaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                  getCriteria(),
                  getParentForChildren(),
                  isClean());
          criteria_ = null;
        }
        return criteriaBuilder_;
      }

      private java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> args_ =
        java.util.Collections.emptyList();
      private void ensureArgsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          args_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar>(args_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> argsBuilder_;

      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> getArgsList() {
        if (argsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(args_);
        } else {
          return argsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public int getArgsCount() {
        if (argsBuilder_ == null) {
          return args_.size();
        } else {
          return argsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index) {
        if (argsBuilder_ == null) {
          return args_.get(index);
        } else {
          return argsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder setArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.set(index, value);
          onChanged();
        } else {
          argsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder setArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.set(index, builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder addArgs(com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.add(value);
          onChanged();
        } else {
          argsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder addArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.add(index, value);
          onChanged();
        } else {
          argsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder addArgs(
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.add(builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder addArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.add(index, builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder addAllArgs(
          java.lang.Iterable<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> values) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, args_);
          onChanged();
        } else {
          argsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder clearArgs() {
        if (argsBuilder_ == null) {
          args_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          argsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public Builder removeArgs(int index) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.remove(index);
          onChanged();
        } else {
          argsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder getArgsBuilder(
          int index) {
        return getArgsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
          int index) {
        if (argsBuilder_ == null) {
          return args_.get(index);  } else {
          return argsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
           getArgsOrBuilderList() {
        if (argsBuilder_ != null) {
          return argsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(args_);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder addArgsBuilder() {
        return getArgsFieldBuilder().addBuilder(
            com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder addArgsBuilder(
          int index) {
        return getArgsFieldBuilder().addBuilder(
            index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 8;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder> 
           getArgsBuilderList() {
        return getArgsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
          getArgsFieldBuilder() {
        if (argsBuilder_ == null) {
          argsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder>(
                  args_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          args_ = null;
        }
        return argsBuilder_;
      }

      private com.mysql.cj.polarx.protobuf.PolarxCrud.Limit limit_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder> limitBuilder_;
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       * @return Whether the limit field is set.
       */
      public boolean hasLimit() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       * @return The limit.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit() {
        if (limitBuilder_ == null) {
          return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
        } else {
          return limitBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       */
      public Builder setLimit(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit value) {
        if (limitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          limit_ = value;
          onChanged();
        } else {
          limitBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       */
      public Builder setLimit(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder builderForValue) {
        if (limitBuilder_ == null) {
          limit_ = builderForValue.build();
          onChanged();
        } else {
          limitBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       */
      public Builder mergeLimit(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit value) {
        if (limitBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
              limit_ != null &&
              limit_ != com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance()) {
            limit_ =
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.newBuilder(limit_).mergeFrom(value).buildPartial();
          } else {
            limit_ = value;
          }
          onChanged();
        } else {
          limitBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       */
      public Builder clearLimit() {
        if (limitBuilder_ == null) {
          limit_ = null;
          onChanged();
        } else {
          limitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder getLimitBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getLimitFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder() {
        if (limitBuilder_ != null) {
          return limitBuilder_.getMessageOrBuilder();
        } else {
          return limit_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
        }
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder> 
          getLimitFieldBuilder() {
        if (limitBuilder_ == null) {
          limitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder>(
                  getLimit(),
                  getParentForChildren(),
                  isClean());
          limit_ = null;
        }
        return limitBuilder_;
      }

      private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> order_ =
        java.util.Collections.emptyList();
      private void ensureOrderIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          order_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Order>(order_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> orderBuilder_;

      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> getOrderList() {
        if (orderBuilder_ == null) {
          return java.util.Collections.unmodifiableList(order_);
        } else {
          return orderBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public int getOrderCount() {
        if (orderBuilder_ == null) {
          return order_.size();
        } else {
          return orderBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index) {
        if (orderBuilder_ == null) {
          return order_.get(index);
        } else {
          return orderBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder setOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.set(index, value);
          onChanged();
        } else {
          orderBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder setOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.set(index, builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder addOrder(com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.add(value);
          onChanged();
        } else {
          orderBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder addOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.add(index, value);
          onChanged();
        } else {
          orderBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder addOrder(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.add(builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder addOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.add(index, builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder addAllOrder(
          java.lang.Iterable<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Order> values) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, order_);
          onChanged();
        } else {
          orderBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder clearOrder() {
        if (orderBuilder_ == null) {
          order_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          orderBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public Builder removeOrder(int index) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.remove(index);
          onChanged();
        } else {
          orderBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder getOrderBuilder(
          int index) {
        return getOrderFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
          int index) {
        if (orderBuilder_ == null) {
          return order_.get(index);  } else {
          return orderBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
           getOrderOrBuilderList() {
        if (orderBuilder_ != null) {
          return orderBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(order_);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder addOrderBuilder() {
        return getOrderFieldBuilder().addBuilder(
            com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder addOrderBuilder(
          int index) {
        return getOrderFieldBuilder().addBuilder(
            index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 6;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder> 
           getOrderBuilderList() {
        return getOrderFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
          getOrderFieldBuilder() {
        if (orderBuilder_ == null) {
          orderBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder>(
                  order_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          order_ = null;
        }
        return orderBuilder_;
      }

      private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation> operation_ =
        java.util.Collections.emptyList();
      private void ensureOperationIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          operation_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation>(operation_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder> operationBuilder_;

      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation> getOperationList() {
        if (operationBuilder_ == null) {
          return java.util.Collections.unmodifiableList(operation_);
        } else {
          return operationBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public int getOperationCount() {
        if (operationBuilder_ == null) {
          return operation_.size();
        } else {
          return operationBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation getOperation(int index) {
        if (operationBuilder_ == null) {
          return operation_.get(index);
        } else {
          return operationBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder setOperation(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation value) {
        if (operationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOperationIsMutable();
          operation_.set(index, value);
          onChanged();
        } else {
          operationBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder setOperation(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder builderForValue) {
        if (operationBuilder_ == null) {
          ensureOperationIsMutable();
          operation_.set(index, builderForValue.build());
          onChanged();
        } else {
          operationBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder addOperation(com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation value) {
        if (operationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOperationIsMutable();
          operation_.add(value);
          onChanged();
        } else {
          operationBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder addOperation(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation value) {
        if (operationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOperationIsMutable();
          operation_.add(index, value);
          onChanged();
        } else {
          operationBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder addOperation(
          com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder builderForValue) {
        if (operationBuilder_ == null) {
          ensureOperationIsMutable();
          operation_.add(builderForValue.build());
          onChanged();
        } else {
          operationBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder addOperation(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder builderForValue) {
        if (operationBuilder_ == null) {
          ensureOperationIsMutable();
          operation_.add(index, builderForValue.build());
          onChanged();
        } else {
          operationBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder addAllOperation(
          java.lang.Iterable<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation> values) {
        if (operationBuilder_ == null) {
          ensureOperationIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, operation_);
          onChanged();
        } else {
          operationBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder clearOperation() {
        if (operationBuilder_ == null) {
          operation_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          operationBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public Builder removeOperation(int index) {
        if (operationBuilder_ == null) {
          ensureOperationIsMutable();
          operation_.remove(index);
          onChanged();
        } else {
          operationBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder getOperationBuilder(
          int index) {
        return getOperationFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder getOperationOrBuilder(
          int index) {
        if (operationBuilder_ == null) {
          return operation_.get(index);  } else {
          return operationBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder> 
           getOperationOrBuilderList() {
        if (operationBuilder_ != null) {
          return operationBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(operation_);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder addOperationBuilder() {
        return getOperationFieldBuilder().addBuilder(
            com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder addOperationBuilder(
          int index) {
        return getOperationFieldBuilder().addBuilder(
            index, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.UpdateOperation operation = 7;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder> 
           getOperationBuilderList() {
        return getOperationFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder> 
          getOperationFieldBuilder() {
        if (operationBuilder_ == null) {
          operationBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperation.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.UpdateOperationOrBuilder>(
                  operation_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        return operationBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Update)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Update)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Update DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Update();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Update getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Update>
        PARSER = new com.google.protobuf.AbstractParser<Update>() {
      @java.lang.Override
      public Update parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Update(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Update> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Update> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Update getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Crud.Delete)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     * @return Whether the collection field is set.
     */
    boolean hasCollection();
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     * @return The collection.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection();
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder();

    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
     * @return Whether the dataModel field is set.
     */
    boolean hasDataModel();
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
     * @return The dataModel.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel();

    /**
     * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
     * @return Whether the criteria field is set.
     */
    boolean hasCriteria();
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
     * @return The criteria.
     */
    com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria();
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
     */
    com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder();

    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> 
        getArgsList();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index);
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    int getArgsCount();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
        getArgsOrBuilderList();
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
        int index);

    /**
     * <code>optional .Polarx.Crud.Limit limit = 4;</code>
     * @return Whether the limit field is set.
     */
    boolean hasLimit();
    /**
     * <code>optional .Polarx.Crud.Limit limit = 4;</code>
     * @return The limit.
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit();
    /**
     * <code>optional .Polarx.Crud.Limit limit = 4;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder();

    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> 
        getOrderList();
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index);
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    int getOrderCount();
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
        getOrderOrBuilderList();
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Delete documents/rows from a Collection/Table
   * :param collection: collection to change
   * :param data_model: datamodel that the operations refer to
   * :param criteria: filter expression to match rows that the operations will apply on
   * :param args: values for parameters used in filter expression
   * :param limit: limits the number of rows to match
   * :param order: specifies order of matched rows
   * :Returns: :protobuf:msg:`Polarx.Resultset::`
   * </pre>
   *
   * Protobuf type {@code Polarx.Crud.Delete}
   */
  public  static final class Delete extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Crud.Delete)
      DeleteOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Delete.newBuilder() to construct.
    private Delete(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Delete() {
      dataModel_ = 1;
      args_ = java.util.Collections.emptyList();
      order_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Delete();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Delete(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = collection_.toBuilder();
              }
              collection_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(collection_);
                collection_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
                @SuppressWarnings("deprecation")
              com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel value = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                dataModel_ = rawValue;
              }
              break;
            }
            case 26: {
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) != 0)) {
                subBuilder = criteria_.toBuilder();
              }
              criteria_ = input.readMessage(com.mysql.cj.x.protobuf.PolarxExpr.Expr.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(criteria_);
                criteria_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) != 0)) {
                subBuilder = limit_.toBuilder();
              }
              limit_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(limit_);
                limit_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                order_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Order>();
                mutable_bitField0_ |= 0x00000020;
              }
              order_.add(
                  input.readMessage(com.mysql.cj.polarx.protobuf.PolarxCrud.Order.PARSER, extensionRegistry));
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                args_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar>();
                mutable_bitField0_ |= 0x00000008;
              }
              args_.add(
                  input.readMessage(com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) != 0)) {
          order_ = java.util.Collections.unmodifiableList(order_);
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          args_ = java.util.Collections.unmodifiableList(args_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Delete_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Delete_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxCrud.Delete.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Delete.Builder.class);
    }

    private int bitField0_;
    public static final int COLLECTION_FIELD_NUMBER = 1;
    private com.mysql.cj.polarx.protobuf.PolarxCrud.Collection collection_;
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     * @return Whether the collection field is set.
     */
    public boolean hasCollection() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     * @return The collection.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection() {
      return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
    }
    /**
     * <code>required .Polarx.Crud.Collection collection = 1;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder() {
      return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
    }

    public static final int DATA_MODEL_FIELD_NUMBER = 2;
    private int dataModel_;
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
     * @return Whether the dataModel field is set.
     */
    public boolean hasDataModel() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
     * @return The dataModel.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel() {
      @SuppressWarnings("deprecation")
      com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel result = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(dataModel_);
      return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.DOCUMENT : result;
    }

    public static final int CRITERIA_FIELD_NUMBER = 3;
    private com.mysql.cj.x.protobuf.PolarxExpr.Expr criteria_;
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
     * @return Whether the criteria field is set.
     */
    public boolean hasCriteria() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
     * @return The criteria.
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria() {
      return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
    }
    /**
     * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder() {
      return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
    }

    public static final int ARGS_FIELD_NUMBER = 6;
    private java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> args_;
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> getArgsList() {
      return args_;
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
        getArgsOrBuilderList() {
      return args_;
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    public int getArgsCount() {
      return args_.size();
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index) {
      return args_.get(index);
    }
    /**
     * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
     */
    public com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
        int index) {
      return args_.get(index);
    }

    public static final int LIMIT_FIELD_NUMBER = 4;
    private com.mysql.cj.polarx.protobuf.PolarxCrud.Limit limit_;
    /**
     * <code>optional .Polarx.Crud.Limit limit = 4;</code>
     * @return Whether the limit field is set.
     */
    public boolean hasLimit() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .Polarx.Crud.Limit limit = 4;</code>
     * @return The limit.
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit() {
      return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
    }
    /**
     * <code>optional .Polarx.Crud.Limit limit = 4;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder() {
      return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
    }

    public static final int ORDER_FIELD_NUMBER = 5;
    private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> order_;
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> getOrderList() {
      return order_;
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
        getOrderOrBuilderList() {
      return order_;
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    public int getOrderCount() {
      return order_.size();
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index) {
      return order_.get(index);
    }
    /**
     * <code>repeated .Polarx.Crud.Order order = 5;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
        int index) {
      return order_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasCollection()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getCollection().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasCriteria()) {
        if (!getCriteria().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getArgsCount(); i++) {
        if (!getArgs(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLimit()) {
        if (!getLimit().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getOrderCount(); i++) {
        if (!getOrder(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getCollection());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, dataModel_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getCriteria());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(4, getLimit());
      }
      for (int i = 0; i < order_.size(); i++) {
        output.writeMessage(5, order_.get(i));
      }
      for (int i = 0; i < args_.size(); i++) {
        output.writeMessage(6, args_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getCollection());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, dataModel_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getCriteria());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getLimit());
      }
      for (int i = 0; i < order_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, order_.get(i));
      }
      for (int i = 0; i < args_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, args_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Delete)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxCrud.Delete other = (com.mysql.cj.polarx.protobuf.PolarxCrud.Delete) obj;

      if (hasCollection() != other.hasCollection()) return false;
      if (hasCollection()) {
        if (!getCollection()
            .equals(other.getCollection())) return false;
      }
      if (hasDataModel() != other.hasDataModel()) return false;
      if (hasDataModel()) {
        if (dataModel_ != other.dataModel_) return false;
      }
      if (hasCriteria() != other.hasCriteria()) return false;
      if (hasCriteria()) {
        if (!getCriteria()
            .equals(other.getCriteria())) return false;
      }
      if (!getArgsList()
          .equals(other.getArgsList())) return false;
      if (hasLimit() != other.hasLimit()) return false;
      if (hasLimit()) {
        if (!getLimit()
            .equals(other.getLimit())) return false;
      }
      if (!getOrderList()
          .equals(other.getOrderList())) return false;
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCollection()) {
        hash = (37 * hash) + COLLECTION_FIELD_NUMBER;
        hash = (53 * hash) + getCollection().hashCode();
      }
      if (hasDataModel()) {
        hash = (37 * hash) + DATA_MODEL_FIELD_NUMBER;
        hash = (53 * hash) + dataModel_;
      }
      if (hasCriteria()) {
        hash = (37 * hash) + CRITERIA_FIELD_NUMBER;
        hash = (53 * hash) + getCriteria().hashCode();
      }
      if (getArgsCount() > 0) {
        hash = (37 * hash) + ARGS_FIELD_NUMBER;
        hash = (53 * hash) + getArgsList().hashCode();
      }
      if (hasLimit()) {
        hash = (37 * hash) + LIMIT_FIELD_NUMBER;
        hash = (53 * hash) + getLimit().hashCode();
      }
      if (getOrderCount() > 0) {
        hash = (37 * hash) + ORDER_FIELD_NUMBER;
        hash = (53 * hash) + getOrderList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxCrud.Delete prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Delete documents/rows from a Collection/Table
     * :param collection: collection to change
     * :param data_model: datamodel that the operations refer to
     * :param criteria: filter expression to match rows that the operations will apply on
     * :param args: values for parameters used in filter expression
     * :param limit: limits the number of rows to match
     * :param order: specifies order of matched rows
     * :Returns: :protobuf:msg:`Polarx.Resultset::`
     * </pre>
     *
     * Protobuf type {@code Polarx.Crud.Delete}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Crud.Delete)
        com.mysql.cj.polarx.protobuf.PolarxCrud.DeleteOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Delete_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Delete_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxCrud.Delete.class, com.mysql.cj.polarx.protobuf.PolarxCrud.Delete.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxCrud.Delete.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getCollectionFieldBuilder();
          getCriteriaFieldBuilder();
          getArgsFieldBuilder();
          getLimitFieldBuilder();
          getOrderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (collectionBuilder_ == null) {
          collection_ = null;
        } else {
          collectionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        dataModel_ = 1;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (criteriaBuilder_ == null) {
          criteria_ = null;
        } else {
          criteriaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (argsBuilder_ == null) {
          args_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          argsBuilder_.clear();
        }
        if (limitBuilder_ == null) {
          limit_ = null;
        } else {
          limitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (orderBuilder_ == null) {
          order_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          orderBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.internal_static_Polarx_Crud_Delete_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Delete getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxCrud.Delete.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Delete build() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Delete result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Delete buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Delete result = new com.mysql.cj.polarx.protobuf.PolarxCrud.Delete(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (collectionBuilder_ == null) {
            result.collection_ = collection_;
          } else {
            result.collection_ = collectionBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.dataModel_ = dataModel_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (criteriaBuilder_ == null) {
            result.criteria_ = criteria_;
          } else {
            result.criteria_ = criteriaBuilder_.build();
          }
          to_bitField0_ |= 0x00000004;
        }
        if (argsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            args_ = java.util.Collections.unmodifiableList(args_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.args_ = args_;
        } else {
          result.args_ = argsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          if (limitBuilder_ == null) {
            result.limit_ = limit_;
          } else {
            result.limit_ = limitBuilder_.build();
          }
          to_bitField0_ |= 0x00000008;
        }
        if (orderBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            order_ = java.util.Collections.unmodifiableList(order_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.order_ = order_;
        } else {
          result.order_ = orderBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxCrud.Delete) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxCrud.Delete)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxCrud.Delete other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxCrud.Delete.getDefaultInstance()) return this;
        if (other.hasCollection()) {
          mergeCollection(other.getCollection());
        }
        if (other.hasDataModel()) {
          setDataModel(other.getDataModel());
        }
        if (other.hasCriteria()) {
          mergeCriteria(other.getCriteria());
        }
        if (argsBuilder_ == null) {
          if (!other.args_.isEmpty()) {
            if (args_.isEmpty()) {
              args_ = other.args_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureArgsIsMutable();
              args_.addAll(other.args_);
            }
            onChanged();
          }
        } else {
          if (!other.args_.isEmpty()) {
            if (argsBuilder_.isEmpty()) {
              argsBuilder_.dispose();
              argsBuilder_ = null;
              args_ = other.args_;
              bitField0_ = (bitField0_ & ~0x00000008);
              argsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getArgsFieldBuilder() : null;
            } else {
              argsBuilder_.addAllMessages(other.args_);
            }
          }
        }
        if (other.hasLimit()) {
          mergeLimit(other.getLimit());
        }
        if (orderBuilder_ == null) {
          if (!other.order_.isEmpty()) {
            if (order_.isEmpty()) {
              order_ = other.order_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureOrderIsMutable();
              order_.addAll(other.order_);
            }
            onChanged();
          }
        } else {
          if (!other.order_.isEmpty()) {
            if (orderBuilder_.isEmpty()) {
              orderBuilder_.dispose();
              orderBuilder_ = null;
              order_ = other.order_;
              bitField0_ = (bitField0_ & ~0x00000020);
              orderBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getOrderFieldBuilder() : null;
            } else {
              orderBuilder_.addAllMessages(other.order_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasCollection()) {
          return false;
        }
        if (!getCollection().isInitialized()) {
          return false;
        }
        if (hasCriteria()) {
          if (!getCriteria().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getArgsCount(); i++) {
          if (!getArgs(i).isInitialized()) {
            return false;
          }
        }
        if (hasLimit()) {
          if (!getLimit().isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getOrderCount(); i++) {
          if (!getOrder(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxCrud.Delete parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxCrud.Delete) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.mysql.cj.polarx.protobuf.PolarxCrud.Collection collection_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder> collectionBuilder_;
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       * @return Whether the collection field is set.
       */
      public boolean hasCollection() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       * @return The collection.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection getCollection() {
        if (collectionBuilder_ == null) {
          return collection_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
        } else {
          return collectionBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public Builder setCollection(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection value) {
        if (collectionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          collection_ = value;
          onChanged();
        } else {
          collectionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public Builder setCollection(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder builderForValue) {
        if (collectionBuilder_ == null) {
          collection_ = builderForValue.build();
          onChanged();
        } else {
          collectionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public Builder mergeCollection(com.mysql.cj.polarx.protobuf.PolarxCrud.Collection value) {
        if (collectionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              collection_ != null &&
              collection_ != com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance()) {
            collection_ =
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.newBuilder(collection_).mergeFrom(value).buildPartial();
          } else {
            collection_ = value;
          }
          onChanged();
        } else {
          collectionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public Builder clearCollection() {
        if (collectionBuilder_ == null) {
          collection_ = null;
          onChanged();
        } else {
          collectionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder getCollectionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getCollectionFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder getCollectionOrBuilder() {
        if (collectionBuilder_ != null) {
          return collectionBuilder_.getMessageOrBuilder();
        } else {
          return collection_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.getDefaultInstance() : collection_;
        }
      }
      /**
       * <code>required .Polarx.Crud.Collection collection = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder> 
          getCollectionFieldBuilder() {
        if (collectionBuilder_ == null) {
          collectionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Collection, com.mysql.cj.polarx.protobuf.PolarxCrud.Collection.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.CollectionOrBuilder>(
                  getCollection(),
                  getParentForChildren(),
                  isClean());
          collection_ = null;
        }
        return collectionBuilder_;
      }

      private int dataModel_ = 1;
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
       * @return Whether the dataModel field is set.
       */
      public boolean hasDataModel() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
       * @return The dataModel.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel getDataModel() {
        @SuppressWarnings("deprecation")
        com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel result = com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.valueOf(dataModel_);
        return result == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel.DOCUMENT : result;
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
       * @param value The dataModel to set.
       * @return This builder for chaining.
       */
      public Builder setDataModel(com.mysql.cj.polarx.protobuf.PolarxCrud.DataModel value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        dataModel_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.DataModel data_model = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataModel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        dataModel_ = 1;
        onChanged();
        return this;
      }

      private com.mysql.cj.x.protobuf.PolarxExpr.Expr criteria_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> criteriaBuilder_;
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       * @return Whether the criteria field is set.
       */
      public boolean hasCriteria() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       * @return The criteria.
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr getCriteria() {
        if (criteriaBuilder_ == null) {
          return criteria_ == null ? com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
        } else {
          return criteriaBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       */
      public Builder setCriteria(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (criteriaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          criteria_ = value;
          onChanged();
        } else {
          criteriaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       */
      public Builder setCriteria(
          com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder builderForValue) {
        if (criteriaBuilder_ == null) {
          criteria_ = builderForValue.build();
          onChanged();
        } else {
          criteriaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       */
      public Builder mergeCriteria(com.mysql.cj.x.protobuf.PolarxExpr.Expr value) {
        if (criteriaBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              criteria_ != null &&
              criteria_ != com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance()) {
            criteria_ =
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.newBuilder(criteria_).mergeFrom(value).buildPartial();
          } else {
            criteria_ = value;
          }
          onChanged();
        } else {
          criteriaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       */
      public Builder clearCriteria() {
        if (criteriaBuilder_ == null) {
          criteria_ = null;
          onChanged();
        } else {
          criteriaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder getCriteriaBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getCriteriaFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder getCriteriaOrBuilder() {
        if (criteriaBuilder_ != null) {
          return criteriaBuilder_.getMessageOrBuilder();
        } else {
          return criteria_ == null ?
              com.mysql.cj.x.protobuf.PolarxExpr.Expr.getDefaultInstance() : criteria_;
        }
      }
      /**
       * <code>optional .Polarx.Expr.Expr criteria = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder> 
          getCriteriaFieldBuilder() {
        if (criteriaBuilder_ == null) {
          criteriaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxExpr.Expr, com.mysql.cj.x.protobuf.PolarxExpr.Expr.Builder, com.mysql.cj.x.protobuf.PolarxExpr.ExprOrBuilder>(
                  getCriteria(),
                  getParentForChildren(),
                  isClean());
          criteria_ = null;
        }
        return criteriaBuilder_;
      }

      private java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> args_ =
        java.util.Collections.emptyList();
      private void ensureArgsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          args_ = new java.util.ArrayList<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar>(args_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> argsBuilder_;

      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> getArgsList() {
        if (argsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(args_);
        } else {
          return argsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public int getArgsCount() {
        if (argsBuilder_ == null) {
          return args_.size();
        } else {
          return argsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar getArgs(int index) {
        if (argsBuilder_ == null) {
          return args_.get(index);
        } else {
          return argsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder setArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.set(index, value);
          onChanged();
        } else {
          argsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder setArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.set(index, builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder addArgs(com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.add(value);
          onChanged();
        } else {
          argsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder addArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar value) {
        if (argsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgsIsMutable();
          args_.add(index, value);
          onChanged();
        } else {
          argsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder addArgs(
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.add(builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder addArgs(
          int index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder builderForValue) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.add(index, builderForValue.build());
          onChanged();
        } else {
          argsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder addAllArgs(
          java.lang.Iterable<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar> values) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, args_);
          onChanged();
        } else {
          argsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder clearArgs() {
        if (argsBuilder_ == null) {
          args_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          argsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public Builder removeArgs(int index) {
        if (argsBuilder_ == null) {
          ensureArgsIsMutable();
          args_.remove(index);
          onChanged();
        } else {
          argsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder getArgsBuilder(
          int index) {
        return getArgsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder getArgsOrBuilder(
          int index) {
        if (argsBuilder_ == null) {
          return args_.get(index);  } else {
          return argsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public java.util.List<? extends com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
           getArgsOrBuilderList() {
        if (argsBuilder_ != null) {
          return argsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(args_);
        }
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder addArgsBuilder() {
        return getArgsFieldBuilder().addBuilder(
            com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder addArgsBuilder(
          int index) {
        return getArgsFieldBuilder().addBuilder(
            index, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Datatypes.Scalar args = 6;</code>
       */
      public java.util.List<com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder> 
           getArgsBuilderList() {
        return getArgsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder> 
          getArgsFieldBuilder() {
        if (argsBuilder_ == null) {
          argsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar, com.mysql.cj.x.protobuf.PolarxDatatypes.Scalar.Builder, com.mysql.cj.x.protobuf.PolarxDatatypes.ScalarOrBuilder>(
                  args_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          args_ = null;
        }
        return argsBuilder_;
      }

      private com.mysql.cj.polarx.protobuf.PolarxCrud.Limit limit_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder> limitBuilder_;
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       * @return Whether the limit field is set.
       */
      public boolean hasLimit() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       * @return The limit.
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit getLimit() {
        if (limitBuilder_ == null) {
          return limit_ == null ? com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
        } else {
          return limitBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       */
      public Builder setLimit(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit value) {
        if (limitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          limit_ = value;
          onChanged();
        } else {
          limitBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       */
      public Builder setLimit(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder builderForValue) {
        if (limitBuilder_ == null) {
          limit_ = builderForValue.build();
          onChanged();
        } else {
          limitBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       */
      public Builder mergeLimit(com.mysql.cj.polarx.protobuf.PolarxCrud.Limit value) {
        if (limitBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
              limit_ != null &&
              limit_ != com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance()) {
            limit_ =
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.newBuilder(limit_).mergeFrom(value).buildPartial();
          } else {
            limit_ = value;
          }
          onChanged();
        } else {
          limitBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       */
      public Builder clearLimit() {
        if (limitBuilder_ == null) {
          limit_ = null;
          onChanged();
        } else {
          limitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder getLimitBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getLimitFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder getLimitOrBuilder() {
        if (limitBuilder_ != null) {
          return limitBuilder_.getMessageOrBuilder();
        } else {
          return limit_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.getDefaultInstance() : limit_;
        }
      }
      /**
       * <code>optional .Polarx.Crud.Limit limit = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder> 
          getLimitFieldBuilder() {
        if (limitBuilder_ == null) {
          limitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Limit, com.mysql.cj.polarx.protobuf.PolarxCrud.Limit.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.LimitOrBuilder>(
                  getLimit(),
                  getParentForChildren(),
                  isClean());
          limit_ = null;
        }
        return limitBuilder_;
      }

      private java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> order_ =
        java.util.Collections.emptyList();
      private void ensureOrderIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          order_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxCrud.Order>(order_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> orderBuilder_;

      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order> getOrderList() {
        if (orderBuilder_ == null) {
          return java.util.Collections.unmodifiableList(order_);
        } else {
          return orderBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public int getOrderCount() {
        if (orderBuilder_ == null) {
          return order_.size();
        } else {
          return orderBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order getOrder(int index) {
        if (orderBuilder_ == null) {
          return order_.get(index);
        } else {
          return orderBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder setOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.set(index, value);
          onChanged();
        } else {
          orderBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder setOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.set(index, builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder addOrder(com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.add(value);
          onChanged();
        } else {
          orderBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder addOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order value) {
        if (orderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderIsMutable();
          order_.add(index, value);
          onChanged();
        } else {
          orderBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder addOrder(
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.add(builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder addOrder(
          int index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder builderForValue) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.add(index, builderForValue.build());
          onChanged();
        } else {
          orderBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder addAllOrder(
          java.lang.Iterable<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.Order> values) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, order_);
          onChanged();
        } else {
          orderBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder clearOrder() {
        if (orderBuilder_ == null) {
          order_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          orderBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public Builder removeOrder(int index) {
        if (orderBuilder_ == null) {
          ensureOrderIsMutable();
          order_.remove(index);
          onChanged();
        } else {
          orderBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder getOrderBuilder(
          int index) {
        return getOrderFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder getOrderOrBuilder(
          int index) {
        if (orderBuilder_ == null) {
          return order_.get(index);  } else {
          return orderBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
           getOrderOrBuilderList() {
        if (orderBuilder_ != null) {
          return orderBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(order_);
        }
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder addOrderBuilder() {
        return getOrderFieldBuilder().addBuilder(
            com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder addOrderBuilder(
          int index) {
        return getOrderFieldBuilder().addBuilder(
            index, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Crud.Order order = 5;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder> 
           getOrderBuilderList() {
        return getOrderFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder> 
          getOrderFieldBuilder() {
        if (orderBuilder_ == null) {
          orderBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxCrud.Order, com.mysql.cj.polarx.protobuf.PolarxCrud.Order.Builder, com.mysql.cj.polarx.protobuf.PolarxCrud.OrderOrBuilder>(
                  order_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          order_ = null;
        }
        return orderBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Crud.Delete)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Crud.Delete)
    private static final com.mysql.cj.polarx.protobuf.PolarxCrud.Delete DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxCrud.Delete();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxCrud.Delete getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Delete>
        PARSER = new com.google.protobuf.AbstractParser<Delete>() {
      @java.lang.Override
      public Delete parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Delete(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Delete> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Delete> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxCrud.Delete getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Column_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Column_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Projection_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Projection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Collection_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Collection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Limit_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Limit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Order_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Order_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_UpdateOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_UpdateOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Find_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Find_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Insert_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Insert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Insert_TypedRow_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Insert_TypedRow_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Update_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Update_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Crud_Delete_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Crud_Delete_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }

    private static final com.google.protobuf.Descriptors.FileDescriptor
        descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\021polarx_crud.proto\022\013Polarx.Crud\032\021polarx" +
      "_expr.proto\032\026polarx_datatypes.proto\"[\n\006C" +
      "olumn\022\014\n\004name\030\001 \001(\t\022\r\n\005alias\030\002 \001(\t\0224\n\rdo" +
          "cument_path\030\003 \003(\0132\035.Polarx.Expr.Document" +
          "PathItem\">\n\nProjection\022!\n\006source\030\001 \002(\0132\021" +
          ".Polarx.Expr.Expr\022\r\n\005alias\030\002 \001(\t\"*\n\nColl" +
          "ection\022\014\n\004name\030\001 \002(\t\022\016\n\006schema\030\002 \001(\t\"*\n\005" +
          "Limit\022\021\n\trow_count\030\001 \002(\004\022\016\n\006offset\030\002 \001(\004" +
          "\"~\n\005Order\022\037\n\004expr\030\001 \002(\0132\021.Polarx.Expr.Ex" +
          "pr\0224\n\tdirection\030\002 \001(\0162\034.Polarx.Crud.Orde" +
          "r.Direction:\003ASC\"\036\n\tDirection\022\007\n\003ASC\020\001\022\010" +
          "\n\004DESC\020\002\"\232\002\n\017UpdateOperation\022-\n\006source\030\001" +
          " \002(\0132\035.Polarx.Expr.ColumnIdentifier\022:\n\to" +
          "peration\030\002 \002(\0162'.Polarx.Crud.UpdateOpera" +
          "tion.UpdateType\022 \n\005value\030\003 \001(\0132\021.Polarx." +
          "Expr.Expr\"z\n\nUpdateType\022\007\n\003SET\020\001\022\017\n\013ITEM" +
          "_REMOVE\020\002\022\014\n\010ITEM_SET\020\003\022\020\n\014ITEM_REPLACE\020" +
          "\004\022\016\n\nITEM_MERGE\020\005\022\020\n\014ARRAY_INSERT\020\006\022\020\n\014A" +
          "RRAY_APPEND\020\007\"\362\002\n\004Find\022+\n\ncollection\030\002 \002" +
          "(\0132\027.Polarx.Crud.Collection\022*\n\ndata_mode" +
          "l\030\003 \001(\0162\026.Polarx.Crud.DataModel\022+\n\nproje" +
          "ction\030\004 \003(\0132\027.Polarx.Crud.Projection\022#\n\010" +
          "criteria\030\005 \001(\0132\021.Polarx.Expr.Expr\022&\n\004arg" +
          "s\030\013 \003(\0132\030.Polarx.Datatypes.Scalar\022!\n\005lim" +
          "it\030\006 \001(\0132\022.Polarx.Crud.Limit\022!\n\005order\030\007 " +
          "\003(\0132\022.Polarx.Crud.Order\022#\n\010grouping\030\010 \003(" +
          "\0132\021.Polarx.Expr.Expr\022,\n\021grouping_criteri" +
          "a\030\t \001(\0132\021.Polarx.Expr.Expr\"\213\002\n\006Insert\022+\n" +
          "\ncollection\030\001 \002(\0132\027.Polarx.Crud.Collecti" +
          "on\022*\n\ndata_model\030\002 \001(\0162\026.Polarx.Crud.Dat" +
          "aModel\022'\n\nprojection\030\003 \003(\0132\023.Polarx.Crud" +
          ".Column\022)\n\003row\030\004 \003(\0132\034.Polarx.Crud.Inser" +
          "t.TypedRow\022&\n\004args\030\005 \003(\0132\030.Polarx.Dataty" +
          "pes.Scalar\032,\n\010TypedRow\022 \n\005field\030\001 \003(\0132\021." +
          "Polarx.Expr.Expr\"\245\002\n\006Update\022+\n\ncollectio" +
          "n\030\002 \002(\0132\027.Polarx.Crud.Collection\022*\n\ndata" +
          "_model\030\003 \001(\0162\026.Polarx.Crud.DataModel\022#\n\010" +
          "criteria\030\004 \001(\0132\021.Polarx.Expr.Expr\022&\n\004arg" +
          "s\030\010 \003(\0132\030.Polarx.Datatypes.Scalar\022!\n\005lim" +
          "it\030\005 \001(\0132\022.Polarx.Crud.Limit\022!\n\005order\030\006 " +
          "\003(\0132\022.Polarx.Crud.Order\022/\n\toperation\030\007 \003" +
      "(\0132\034.Polarx.Crud.UpdateOperation\"\364\001\n\006Del" +
      "ete\022+\n\ncollection\030\001 \002(\0132\027.Polarx.Crud.Co" +
      "llection\022*\n\ndata_model\030\002 \001(\0162\026.Polarx.Cr" +
      "ud.DataModel\022#\n\010criteria\030\003 \001(\0132\021.Polarx." +
      "Expr.Expr\022&\n\004args\030\006 \003(\0132\030.Polarx.Datatyp" +
      "es.Scalar\022!\n\005limit\030\004 \001(\0132\022.Polarx.Crud.L" +
      "imit\022!\n\005order\030\005 \003(\0132\022.Polarx.Crud.Order*" +
      "$\n\tDataModel\022\014\n\010DOCUMENT\020\001\022\t\n\005TABLE\020\002B\036\n" +
      "\034com.mysql.cj.polarx.protobuf"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.mysql.cj.x.protobuf.PolarxExpr.getDescriptor(),
          com.mysql.cj.x.protobuf.PolarxDatatypes.getDescriptor(),
        });
    internal_static_Polarx_Crud_Column_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_Polarx_Crud_Column_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Column_descriptor,
        new java.lang.String[] { "Name", "Alias", "DocumentPath", });
    internal_static_Polarx_Crud_Projection_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_Polarx_Crud_Projection_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Projection_descriptor,
        new java.lang.String[] { "Source", "Alias", });
    internal_static_Polarx_Crud_Collection_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_Polarx_Crud_Collection_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Collection_descriptor,
        new java.lang.String[] { "Name", "Schema", });
    internal_static_Polarx_Crud_Limit_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_Polarx_Crud_Limit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Limit_descriptor,
        new java.lang.String[] { "RowCount", "Offset", });
    internal_static_Polarx_Crud_Order_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_Polarx_Crud_Order_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Order_descriptor,
        new java.lang.String[] { "Expr", "Direction", });
    internal_static_Polarx_Crud_UpdateOperation_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_Polarx_Crud_UpdateOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_UpdateOperation_descriptor,
        new java.lang.String[] { "Source", "Operation", "Value", });
    internal_static_Polarx_Crud_Find_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_Polarx_Crud_Find_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Find_descriptor,
        new java.lang.String[] { "Collection", "DataModel", "Projection", "Criteria", "Args", "Limit", "Order", "Grouping", "GroupingCriteria", });
    internal_static_Polarx_Crud_Insert_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_Polarx_Crud_Insert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Insert_descriptor,
        new java.lang.String[] { "Collection", "DataModel", "Projection", "Row", "Args", });
    internal_static_Polarx_Crud_Insert_TypedRow_descriptor =
      internal_static_Polarx_Crud_Insert_descriptor.getNestedTypes().get(0);
    internal_static_Polarx_Crud_Insert_TypedRow_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Insert_TypedRow_descriptor,
        new java.lang.String[] { "Field", });
    internal_static_Polarx_Crud_Update_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_Polarx_Crud_Update_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Update_descriptor,
        new java.lang.String[] { "Collection", "DataModel", "Criteria", "Args", "Limit", "Order", "Operation", });
    internal_static_Polarx_Crud_Delete_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_Polarx_Crud_Delete_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Crud_Delete_descriptor,
        new java.lang.String[] { "Collection", "DataModel", "Criteria", "Args", "Limit", "Order", });
    com.mysql.cj.x.protobuf.PolarxExpr.getDescriptor();
    com.mysql.cj.x.protobuf.PolarxDatatypes.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
